FC2ブログ
 
■プロフィール

クリエイトウェーブスタッフ

Author:クリエイトウェーブスタッフ
開発における、諸々を書いていきたいなと思っています。

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

■RSSフィード
■リンク
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