Closed6
【Unity】Firebase Cloud Firestoreを使ってデータの読み書き
やりたいこと
作ってるカジュアルゲームに簡単な掲示板機能を付けたい。
- 投稿
- 投稿内容の文字列
- 投稿者名
- 投稿者id
- 投稿日時
をたくさん管理したい。
(ユーザー管理のテーブルは持たないので、idだけじゃなく名前も一緒にもたせてる)
投稿へのコメントとか"いいね"とかはつける予定無し。
"Cloud Firestore" or "Realtime Database"?
FirebaseのDBにはCloud FirestoreとRealtime Databaseの2つが選択肢としてある。
どっちを使えばいいかは公式の比較ページを見る
やりたいことをすでにまとめてる記事があった
Cloud Firestoreについてまとまってる
読み込み
こういう構造のcollectionを作ってみた。
取得する。
public async void GetPostCollectionSample()
{
var database = FirebaseFirestore.DefaultInstance;
// postsから作成日時(createdAt)でソートして新しい順に100件取得
var query = database.Collection("posts").OrderByDescending("createdAt").Limit(100);
var snapshot = await query.GetSnapshotAsync();
// 冗長になるから変数を分けたけど、一度に書ける
var snapshot2 = await FirebaseFirestore.DefaultInstance.Collection("posts")
.OrderByDescending("createdAt").Limit(100).GetSnapshotAsync();
foreach (var document in snapshot.Documents)
{
// 何かしらする
}
}
書き込み
public async void SetPostData()
{
Dictionary<string, object> data = new Dictionary<string, object>()
{
{"author", "SampleName"},
{"createdAt", Timestamp.GetCurrentTimestamp()},
{"content", "これはテスト投稿です"},
};
await FirebaseFirestore.DefaultInstance.Collection("posts").Document().SetAsync(data);
Debug.Log("投稿しました");
}
Firestoreのブラウザ側にちゃんと書き込まれてる
(・∀・)イイネ!!
記事化する
このスクラップは2020/12/16にクローズされました