タイトルの通りですが、Win32上でも匿名認証が普通にできるので方法を紹介したいと思います。
前回書いた以下の記事でWin32のプロジェクトが設定済みの状態を想定します。
そして、以下のページにある「デスクトップ版の Firebase 構成ファイルを作成します。」の項目でAndroid用の「google-services.json」をダウンロードします。(FirebaseのプロジェクトにAndroidのアプリケーションを追加してダウンロードしてください)
で、その取得した、jsonファイルを自分のアプリの「Resources」フォルダのルートに移動します。
このjsonファイルがResourceフォルダのルートに無いと以下のエラーが発生します。
ERROR: Unable to load Firebase app options ([google-services-desktop.json, google-services.json] are missing or malformed)ERROR: Failed to load default options when attempting to populate missing fieldsERROR: App ID and API key must be specified in App options.
そして公式の匿名認証のページを参照して自分のコードに以下を記述します。(以下すごい適当なので終了のコールバックとかはリファレンスを見てちゃんと実装しましょうw
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) #include "platform\android\jni\JniHelper.h" #endif #include "FirebaseHelper.hpp" #include "firebase\app.h" #include "firebase\auth.h" void TestScene::test_firebase() { using namespace firebase; #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) App* app = App::Create(AppOptions(), JniHelper::getEnv(), JniHelper::getActivity()); //#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) #else App* app = App::Create(firebase::AppOptions()); // iOSとWin32はコードが同じ! #endif auth::Auth* auth = auth::Auth::GetAuth(app); Future<auth::User*> user = auth->SignInAnonymously(); }
VS上でこんな感じに見えると思います。
で、このコードが最後まで実行されるとFirebaseのコンソールに以下のように匿名ログインが記録されます。
jsonファイルを配置さえできれば普通に動きます。簡単すぎてヤバいです。
ただリファレンスに再三注意があるとおり
注意: Firebase C++ SDK デスクトップ サポートはベータ版の機能です。この機能は、公開対象のコードではなく、ゲーム開発中のワークフローで使用するためのものです。
使えるからってデスクトップに組み込んでリリースするのだけはやめましょう。将来的に正式版として対応してくれるのかな…?
参照サイト
前述のサイトのほかに以下サイトを参照させていただきました。ありがとうございます。
以上です。