概要
using System.Collections.Generic; using Firebase.Firestore; using UnityEngine; public class Example : MonoBehaviour { private async void Start() { var firestore = FirebaseFirestore.DefaultInstance; var collectionReference = firestore .Collection( "users" ) .Document( "players" ) .Collection( "names" ) ; var documentData = new Dictionary<string, object> { { "name", "ピカチュウ" }, }; Debug.Log( "開始" ); var documentReference = await collectionReference.AddAsync( documentData ); Debug.Log( "完了" ); // オフラインの場合はここに来ない } }
Firestore の DocumentReference.SetAsync
は
オフラインの場合 Task が完了しないため、await
していると処理が進まなくなる
Firestore はオフラインの場合は端末にデータを保持し、
オンラインになった時にサーバーと同期を行う仕組みになっているため
using System.Collections.Generic; using Firebase.Firestore; using UnityEngine; public class Example : MonoBehaviour { private void Start() { var firestore = FirebaseFirestore.DefaultInstance; var collectionReference = firestore .Collection( "users" ) .Document( "players" ) .Collection( "names" ) ; var documentData = new Dictionary<string, object> { { "name", "ピカチュウ" }, }; Debug.Log( "開始" ); var documentReference = collectionReference.Document(); collectionReference.AddAsync( documentData ); // documentReference.SetAsync( documentData ); Debug.Log( "完了" ); } }
プロジェクトによっては await しなくても問題ない