LoginSignup
1
1

More than 1 year has passed since last update.

C#でCloud Firestoreを使う

Posted at

この記事は?

個人的なシステムでRealtime Databaseで扱っていたデータをCloud Firestoreに移管することにしたため、それに伴いC#で作成したバッチプログラムからCloud Firestoreにデータを書き込めるようにする必要が出てきた。その時の実装内容を備忘を兼ねて記事にした。

やりたい事

メディアファイルをFirebase Storageにアップロードして、それに関連するデータをCloud Firestoreに書き込む。

実装手順

サービスアカウントの作成

まずAPIを介してCloud Firestoreにアクセスするために認証を通す必要があるので、Firebaseの管理画面でサービスアカウントの作成を行いま
す。

Firebaseの管理画面でプロジェクトの設定 > サービスアカウントと進んで「新しい秘密鍵の生成」をクリックします。

秘密鍵のjsonファイルがダウンロードされるので、これを任意の場所に保存しておいてください。

Google.Cloud.Firestoreパッケージの取得

Cloud FirestoreをC#から使うためにはGoogle.Cloud.Firestoreパッケージが必要なのでNugetで取得してインストールしてください。

環境変数の設定

環境変数に秘密鍵の場所を設定します。任意の場所(今回はMain()の中で実装しました)に下記を記述してください。

string accessKeyPath = "秘密鍵のファイルパス";
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", accessKeyPath);

書き込みを行う部分を実装する

ここまでの手順で準備ができたので、実際に書き込みをするコードを実装します。

// インスタンス生成
var db = FirestoreDb.Create("プロジェクトID");

// キー指定してドキュメントを取得
var radioRef = db.Collection("コレクション名称").Document(id);

// 書き込むデータを準備
var user = new Dictionary<string, object>
{    
    { "title", title },
};

// 書き込み(IDに該当するデータが無いときは追加、ある時は更新される)
await radioRef.SetAsync(user);

プロジェクトIDはFirebaseの管理画面でプロジェクトの設定を開くと表示されています。

1
1
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
1