Firestoreの準備
Firebaseの準備
C#プロジェクトを作成する
- C#プロジェクトを作成する
- ソリューションのNuGetパッケージの管理で[Google.Cloud.Firestore]をインストールする
プロジェクトで環境変数を設定する
// ダウンロードしたサービスアカウントのアクセスキーの
// 保存パスを環境変数に設定する
string accessKeyPath = "保存ファイルのフルパス"; // "C:\Users\TestUser\Documents\xxx-xxxxxx-xxxxxxxx-xxxxx.json"
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", accessKeyPath);
Firestoreの操作
Firestoreの初期化
プロジェクトIDを「Firebaseプロジェクトの設定」ページから取得する
String projectId = "xxx-xxxxxx-xxxx";
FirestoreDb db = FirestoreDb.Create(projectId);
Console.WriteLine("Created Cloud Firestore client with project ID: {0}", projectId);
データの追加
string documentName = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
DocumentReference docRef = db.Collection("users").Document(documentName);
Dictionary<string, object> user = new Dictionary<string, object>
{
{ "AccessDate", Timestamp.GetCurrentTimestamp() },
{ "IdNumber", 6548 },
{ "Name", "C#" }
};
await docRef.SetAsync(user);
データの取得
CollectionReference usersRef = db.Collection("users");
QuerySnapshot snapshot = await usersRef.GetSnapshotAsync();
List<FirestoreData> list = new List<FirestoreData>();
foreach (DocumentSnapshot document in snapshot.Documents)
{
FirestoreData data = new FirestoreData
{
Id = document.Id,
AccessDate = document.GetValue<Timestamp>("AccessDate").ToDateTime(),
IdNumber = document.GetValue<double>("IdNumber"),
Name = document.GetValue<string>("Name")
};
list.Add(data);
}
データクラス
public class FirestoreData
{
public string Id { get; set; }
public DateTime AccessDate { get; set; }
public double IdNumber { get; set; }
public string Name { get; set; }
}