FC2ブログ
 
■プロフィール

クリエイトウェーブ

Author:クリエイトウェーブ
開発における、諸々を書いていきたいなと思っています。
mail : info@createwave.jp

■最近の記事
■カテゴリー
■最近のコメント
■月別アーカイブ
■最近のトラックバック
■ブログ内検索

■RSSフィード
■リンク
FireBaseのCloudFunctionsからβマークがなくなっている
cf.jpg

FireBaseのドキュメントのとこみたら、CloudFunctionからβマークがなくなってるじゃありませんか!!
ついに正式版になったのですかね。
調べたんですが、ちょっとよくわからない。

でもFireBaseは、積極的に使っていくのでCloudFunctnからβが取れたのは嬉しい限りです。
Node.JSも大分慣れましたしね!!

カテゴリー:FireBase | TM(0) | CM(0)
CloudFunctionでGETを受信
ものすごく、しょうもない事で時間を使ってしまったので備忘録

FireBaseのfunctionsでGETってどうやってうけとるんだっけ? と思ったのだけどそれがわかんなくて・・・
functions.https.onRequest((request, response) => { の命令のあとに request.method でGETかPOSTを分岐させてるページはあるんですが、実際のパラメータ取得のサンプルはPOSTばかり・・・・

結局、よくわからなくてnode.js(functionsは結局node.jsですもんね)のGETサンプルのページみつけて解決しました。
node.jsのもなかなかわかりやすいサンプルみつからず・・・・

https://~~~~~~~~~~~~~~~~~~~~~~~~~~~/gettest?user=akito
でuserにakitoって文字入れてるんですがfunctionsは無事以下のようにしたらとれました。

exports.gettest = functions.https.onRequest((request, response) => {
response.send(request.query['user']);
});

こんなのに時間かけてしまって・・・
しかも使う事あるのだろうか・・・


カテゴリー:FireBase | TM(0) | CM(0)
CloudFunctions上でサーバー時間を取得
node.jsで時間取得の命令を使えばいいのだろうと思ったのですが 「date-utils」 を使うらしい。
functionsのnode_modulesの中を見てみると、 「date-utils」がないように見える。。。

cd functions のコマンドでfunctionsのフォルダの中に入り
npm install date-utils
を実行しました。

node_modulesの中に 「date-utils」 が出来てました。
index.jsの中で

require('date-utils');
var date = new Date();
var formatted = date.toFormat("YYYY/MM/DD HH24時MI分SS秒");
response.send(formatted);

を書いてデプロイして実行してみた。
ちゃんと取れたんですが、年月日はあってるんだけど、時間、分、秒がどうみても日本時間ではない・・・・

調べてみたところ、協定世界時というので表示されている。
日本時間との差は、丁度9時間きっかりのようです。

require('date-utils');
var date = new Date();
date.setHours(date.getHours()+9);//日本時間に変換
var formatted = date.toFormat("YYYY/MM/DD HH24時MI分SS秒");
response.send(formatted);

でちゃんと日本時間で表示されるのが確認出来ました。

var formatted = date.toFormat("YYYYMMDDHH24MISS");
とすれば、数字のみで
20180514101010 (2018年5月14日10字0分10秒)みたいな値で取得できます。

Functionsで、期間限定でイベントを行うAPIを作る時に役に立ちそうです。

カテゴリー:FireBase | TM(0) | CM(2)
FireBaseのCloudFunctionsでCSVファイルを読み込む
SNSゲームとか作る時に、読み込み専用のデータがあります。
モンスターやらキャラクターデータやら。。 
インデックスを貼るようあ巨大なデータならともかく、100件や200件とかそんなやつ。。。。

いちいちDBから読み込むんじゃなくCSVとかから読み込めないのかと思い、格闘してました。。。数時間も
それで出来たのでメモ
最初は、同じFireBaseのCloud Storageから読み込めないんだろうかと思っていたのですが、方法はあるんですが
いわゆるStorage上のURLを取得して読み込む方法しか見つからなくて、URLでアクセスって事は当然公開ルールの設定とかも引っかかる訳だし、そもそもHTTPアクセス等で読み込むってところが、そもそも想像してたのと違いました。

じゃあFunctionsのところにCSVファイルをおけばいいのかと思ったのですが、成功したのでそれで正解らしい。

まず Node,jsでCSV読み込み関係の検索をかけたところ、いっぱいひっかかりました。
だいたい、どのページの説明も
npm install --save csv-parse
から始まる。

Functionsの環境を作ったところで(firebase init functions とかで環境つくりますが、情報は一杯出てるので割愛)
functionsのnode_modulesの中を見てみると、CSV関係はないようにみえる

cd functions のコマンドでfunctionsのフォルダの中に入り
npm install --save csv-parse
を実行しました

node_modulesの中にCSV関係が出来ている・・ たぶんこれやらないと駄目
後は、functionsフォルダの中にsample.csv置いて

のindex,jsを作ります。

そしてデプロイすると、FireBaseコンソールのfunctionsのダッシュボードをみると
helloCsvのAPIアクセスURLが出来てるので、そこへアクセス
無事CSV読み込みが出来てるのが確認できます。
読み込まれたCSVは配列になってるので、配列でアクセスします。

でもここまでの格闘で半日近くかかりました。
だいたいのページの情報の通りやると、だいたいfがエラー・・・ Cloud Functionでは、なんか違うのでしょうか・・

そういえば、最初の頃 console.logも クロームのデベロッパーコンソールで見れるのかと勘違いして苦戦した。
正解は、FireBaseコンソールのfunctionsのログに書き出されています・・

カテゴリー:FireBase | TM(0) | CM(0)
FireBase勉強中
前回FireBaseからAssetBundle読み込みを認証付きで行う方法を書いたのですが、考えてみるとキャッシュ&ロードを考えると、あれじゃいけない。。と思ってきました。

それでAssetBundleのバージョンをファイル毎の一覧にしたCSVを(もちろんAssetBundle増やしたり修正する度に、これを更新していきます)FireBase Storageにのっけて連携させる事にしました
AssetBundleを Application.temporaryCachePathにダウンロード済みなのは、ローカルから、そうでないのはFireBaseから。。。
連休中に完成させましたが、まだ検証もするのでそれはおいおい。。そのうち書くかも

GWの休みは、今後の事や、いまUnityで作ってるカジュアルゲーム考えてFireBaseに取り組んでました。
匿名認証から、RemotoConfigに、ストレージ関係、RealTimeDBに、本日はFunctions(サーバーサイドスクリプトですね)一通りやりました。

未だプッシュ通信の制御とか、そういうのはやってないですが、FireBase中々面白いです。
FireBaseはMBAASの一種ですが、いわゆるサーバー側の仕組みはある程度提供するので、クライアントプログラムに集中してくださいって仕組みの事です。

認証しないと、ダウンロードやDBアクセスできなかったりとセキュリティもしっかりしてて、スケーリング等も全部自動ですし、しかも無料で色々出来る。
諸々不足になったら有料プランにいつでも切り替えられるのもいいところ
25$と、従量制?と2種類のようですが、カジュアルゲームとかだと25$払う時は、もうそこそこ成果でてるのでは?とも思えます。

自分はサーバーやる時もありますが、PHPとMySQLとかで構築するのとは考え方からして大分違います。
DBもリレーショナルというより、Json?ライクなやつです。

プログラム自体は、サーバープログラマーよりクライアントプログラマーの範囲かもしれないですね・・・
自分は元々はクライアントが専門なので、あまり困らないですが、サーバーの人はとっつきにくかも(というよりクライアントあっての仕組みですね)
逆にいうと、Unityとかでゲーム作る人は、サーバーはFireBaseがあるってのは心強いかもしれないです。

大規模SNSゲームには難しい気もしてますが、そうでなければ十分な選択肢と考えていいかもしれないです。

心配なのは、Firebase終わりとかなると、他に転用が効かない事でしょうか・・・ 
でも天下のGoogle様なので、大丈夫と信じて・・しばらくFireBaseとお付き合いしていきます。

カテゴリー:FireBase | TM(0) | CM(0)
前のページ

FC2Ad