fc2ブログ
 
■プロフィール

クリエイトウェーブ

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

■最近の記事
■カテゴリー
■最近のコメント
■月別アーカイブ

■最近のトラックバック
■ブログ内検索

■RSSフィード
■リンク
サーバー側全部FireBaseで作ったSNSゲームリリース
タイトル名は諸事情で言えませんが、サーバー側をPHPとMySQLやめて、思い切ってFireBaseのCloudFunctionsとFireStoreで開発したゲーム遂にリリースしました。 ちなみにクライアント側はUnityです。

開発1年ちかくかかりましたが、CloudFunction(Node.js)とFireStoreも手探りで始めたので感慨深いものがあります。
実際料金とかどれくらいかかるのだろうとか、重くなったりしないのかとか、すごい心配していたのですが、蓋をあけてみると

DAU1万5千人くらいですが、恐ろしいほど快適・・・・ 重くなる兆候さえない。 DAU1万5千人規模の場合、だいたい1日千円弱くらいFireBase代が発生しるので月3万とかかな。
もちろん料金抑える為に、色々工夫してます(結果的には、これがサーバーのパワーを引き出す事にもつながります)

今までの普通のクラウドで構築すると、月20万~50万くらいのシステムでスタートしてると思うので、コスパはやはり凄い。さすがGoogleのシステムです。
おまけに開発時はテストサーバー代無料だし、SSL代とかもないし・・・

びっくりしたのは開発時よりサーバー反応が異様にいいこと。 こんなに早かったのか・・というぐらい開発時とちがます。
アクセス数が増えてサーバーのCPUとかネットワークのパワーの割当が増えてるんでしょうね。

カテゴリー:Unity&FireBase | TM(0) | CM(0)
iosでFireBaseのCloudStorageからダウンロードできない
昨日、Unity上でCloud Storageからファイルをダウンロードするのを書いたばかりですが、iosの実機に書き出してみたところうまくいかない事がわかりました。

アンドロイド実機問題なし、UnityEditor上でもプラットフォームをios設定にしていても問題ありません。
ダウンロード先は、Application.temporaryCachePathにしています。

パーミッションみたいな設定があるのか、そもそもiosではダウンロードできないのか・・・よくわかりません。
方法あるのかわかりませんが、一度Cloud Storage上のデータをUnity上でメモリ上にバイナリ形式で読み込んでおいて、Application.temporaryCachePathにUnity上のC#で書き出す事にしました。



dotnet4版のFireBaseSDKを使って昨日書いたとおりでコルーチンで処理を判別しています。
なんかスッキリしないけど、いい方法はあるのだろうか。。。

カテゴリー:Unity&FireBase | TM(0) | CM(0)
UnityでFireBaseのCloudStorageのダウンロード後の処理ができなくなった・・・
今までUnityでFireBaseのCloud Storageからファイルをダウンロードしたあとの処理を以下のようにしていました。


しかし、FireBaseSDKを.Net4版にしたら以下のように、命令を受け付けなくなった

なんか別スレッドなので処理できないみたいのがコンソールに出てるし、thisもとれない・・・
Invokeやコルーチンの命令書いても動かない・・・
いったい、どうすればいいんだ

色々実験したら、変数には値が入るので、予めコルーチンを動かしておいて、変数で処理するようにしました


他にいい方法はないだろうか・・・
判るまでしばらくこれでいきます。。

カテゴリー:Unity&FireBase | TM(0) | CM(0)
FireBaseの匿名認証のIDが、インストール毎に変わるようになったのかな?
FireBaseのUserIDじゃなく、UserTokenを使う
で書きましたし、ちょっと検索すると同じ事かいてるのにひっかかると思いますが、FioreBaseの匿名認証はアプリをアンインストールして、インストールし直すと同じIDになってました。

実験もしましたし、FireBaseIDでアプリ管理していたらガチャゲー作ってもリセマラ出来ないなとか言っていたのですが、仕様変わったのかな?

firebase_unity_sdk_5.4.3から、SDKの内容が「dotnet3」フォルダと「dotnet4」フォルダに分かれたので「dotnet4」にしてみたんですが
インストールするたびに、匿名IDが変化するようになってしまいました。

アンインストールしてインストールしなおさないと変わらないので、別に問題ないのですが、仕様かわったのかな?とちょっと気になってます。「dotnet3」のSDKでも同じなのかな?

とりあえず「dotnet4」SDKの方を使おうと思いますが

カテゴリー:Unity&FireBase | TM(0) | CM(0)
FireBaseのUserIDじゃなく、UserTokenを使う
あけましておめでとうございます。
今年も、UnityとFireBaseガンガンやっていきます。

さて、早速ですが、UnityとFioreBaseのCloudFunctionでやりとりするときに、FioreBaseのUserIDを使うのがシンプルですが、UserTokenを使う手もあります。
トークンは、CloudFunction上でUserIDに変換され、トークンは一定時間で変化するのでセキュリティ的にもUserIDで直接やりとりするよりも強力です。

まずは、Unity側
-----------------------------------------------------------
Firebase.Auth.FirebaseUser user = auth.CurrentUser;
user.TokenAsync(true).ContinueWith(task => {
 if (task.IsCanceled) {
   Debug.LogError("TokenAsync was canceled.");
   return;
 }

 if (task.IsFaulted) {
   Debug.LogError("TokenAsync encountered an error: " + task.Exception);
   return;
 }
 string token = task.Result;//ここでトークンを取得
});
-----------------------------------------------------------
こんな感じです。

次に、受け取ったトークンをUserIDに変換するCloudFunction側
-----------------------------------------------------------
admin.auth().verifyIdToken(token)
 .then(function (decodedToken) {
   fireBaseId = decodedToken.uid;//変換されたUserID
   return
 }).catch(function (error) {
   //エラー処理
});
-----------------------------------------------------------
こんな感じです。


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