UnityでFirestoreを使ってみる


FirebaseにUnity公式ドキュメントがなかったため書いた。

※Google公式ドキュメントを参考にしている。
https://cloud.google.com/firestore/docs

データの取得

Firestoreはコレクション→ドキュメント→コレクション...という構成。

ドキュメントは1個のデータ、コレクションはそれをまとめる的なイメージで考えていただければと思う。
なお、ドキュメントの中にコレクションを設けることもできる。

Unity
// コレクションを取得
CollectionReference citiesRef = db.Collection("cities");
//その中のドキュメントを取得
DocumentReference sfRef = citiesRef.Document("SF");

// その中のコレクションを取得(サブコレクション)
CollectionReference usersRef = sfRef.Collection("users");

データの追加

・特定のドキュメントにセット
・適当な名前を発行してもらって、そこにセット
のどちらかの手法がある。

また、セットするのはjsonではなく、Dictionaryであることも注意。
なお、非同期である。

Unity
// 適当なDictionaryを用意
dic = new Dictionary<string, object>(){
  { "Name", "San Francisco" },
  { "State", "CA" },
  { "Country", "USA" },
  { "Capital", false },
  { "Population", 860000 }
}

// 特定のドキュメントにセットする場合
citiesRef.Document("SF").SetAsync(dic).ContinueWith(task => {
  // 終わった後の処理
});

// 適当な名前を発行してもらって、そこにセットする場合(こっちを多く使うと思う)
citiesRef.AddAsync(dic).ContinueWith(task => {
  // 終わった後の処理
});

都度追加していきます。