LoginSignup
1
2

More than 1 year has passed since last update.

Firebase Local Emulator Suite を.NET SDK で利用する

Posted at

FirebaseのEmulatorをJavaScriptのSDKを使って利用する方法はネット上に豊富にあるのですが、
.NETのSDKを使ったやり方はあまり情報が無かったので記事にしました。
Emulatorの構築方法についてはこの記事では割愛させていただきます。

基本的には環境変数を設定してから呼び出す流れでいけるはずです。
実際にやってみたのは以下2つ。

  • Cloud Firestore
  • FirebaseAdmin Auth

cloud Firestore

// 環境変数にemulatorへの向き先を設定
Environment.SetEnvironmentVariable("FIRESTORE_EMULATOR_HOST", "localhost:8080");

var firestoreDb = new FirestoreDbBuilder()
{
    // 何でも良さそう? エミュレータ起動時に指定したproject名にしておけば安心
    ProjectId = "testproj",
    // エミュレータへの接続を強制しておけば安心
    EmulatorDetection = Google.Api.Gax.EmulatorDetection.EmulatorOnly,
}.Build();

FirebaseAdmin Auth

// 環境変数にemulatorへの向き先を設定(ローカルでデフォルト設定ならlocalhost:9099)
Environment.SetEnvironmentVariable("FIREBASE_AUTH_EMULATOR_HOST", "localhost:9099");

FirebaseAdmin.FirebaseApp.Create(new FirebaseAdmin.AppOptions()
{
    // でたらめで良いので何らかのCredentialを指定する
    Credential = Google.Apis.Auth.OAuth2.GoogleCredential.FromAccessToken("mocktoken"),
    // エミュレータ起動時に指定したproject名
    ProjectId = "testproj",
});

番外編

非公式のGoogleCloudStorageエミュレータ、fake-gcs-serverへの接続はこんな感じ。
.NETから使う際は起動時に-external-urlで自身のURLを引数指定してやる必要がある模様。
gitのexsamplesに.NETから呼び出す用のDockerファイルが用意されているので、それを使えば手っ取り早い。

var client = new StorageClientBuilder()
{
    // URLはフルで指定
    BaseUri = "http://localhost:5678/storage/v1/",
    // 認証無しで接続
    UnauthenticatedAccess = true,
}.Build();
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2