【问题标题】:Initialize FirebaseFirestore in Unity C#在 Unity C# 中初始化 FirebaseFirestore
【发布时间】:2020-07-07 19:05:41
【问题描述】:

所以我一直在使用 FireStore 开发应用程序(Typescript/Javascript)。

在 Unity 中工作,我刚刚为 FireStore 安装了所有适当的包和依赖项以实现统一。

我不知道如何初始化 FireStore 对象以将其与我的 Firebase FireStore 连接。

统一的 Firebase 似乎相对较新,因为文档很少。

带有统一文档的 FireStore 似乎几乎不存在。

C# firestoreTest

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Firebase;
using Firebase.Analytics;
using Firebase.Database;
using Firebase.Unity.Editor;
using Firebase.Firestore;


public class firestoreTest : MonoBehaviour
  {
    void Start()
    {
      FirebaseFirestore db = FirebaseFirestore.DefaultInstance; // <- Not sure if this is how you properly initialize it.

      //
      //The follow code is from the official Firebase Firestore site for C#.
      //Link
      //https://firebase.google.com/docs/firestore/manage-data/add-data#c_5

      DocumentReference docRef = db.Collection("TestUnity").Document("XsAaTp9dJ6vz33ngzUah");
      Dictionary<string, object> city = new Dictionary<string, object>
      {
          { "name", "Los Angeles" },
          { "state", "CA" },
          { "country", "USA" }
      };
      await docRef.SetAsync(city); // <- this throws an error for async problems.
    }

  }

我想要做的是将一些变量从 Unity 保存到 FireStore。

应该能够自己处理其他所有事情,只是不知道这样做的正确语法。

问题:不知道如何正确地将“FirebaseFirestore db”初始化到我的数据库中,并且异步语法有错误,而且我对 C# 不太熟悉。

注意* 我确实知道如何将 Unity 中的信息保存到 Firebase 的“实时数据库”,但我的所有其他应用程序都在 Firebase Firestore 上运行,我希望所有应用程序都能轻松地相互通信。

【问题讨论】:

    标签: c# firebase unity3d google-cloud-firestore


    【解决方案1】:

    在玩耍并阅读更多内容后,我得到了一些东西要从 unity 上传到 FireStore。

    提出问题通常会让我在解决问题时更加努力。

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using Firebase;
    using Firebase.Analytics;
    using Firebase.Database;
    using Firebase.Unity.Editor;
    using Firebase.Firestore;
    
    public class firebaser : MonoBehaviour
    {
        // Start is called before the first frame update
        void Start()
        {
            Debug.Log("Start");
            call();
        }
    
        async void call()
        {
            FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
            DocumentReference docRef = db.Collection("TestUnity").Document("XsAaTp9dJ6vz33ngzUah");
            Dictionary<string, object> city = new Dictionary<string, object>
            {
                { "name", "Los Angeles" },
                { "state", "CA" },
                { "country", "USA" }
            };
            Debug.Log("I am here");
            await docRef.SetAsync(city, SetOptions.MergeAll);
        }
    }
    

    我将把它留在这里,因为我真的找不到太多关于 Firestore / Unity 的文档。

    希望保存通用数据的基础知识可以帮助其他人。

    【讨论】:

    • 很高兴你解决了这个问题! Firestore 仍然是 alpha 版本,API 可能会发生变化,所以它还没有很好的文档记录。一些注意事项:1)您可以使 Start 异步(例如:async void Start() 在其中等待,2)您还可以使 StartIEnumerator Start() 成为协程。使用后者,您可以执行var task = docRef.SetAsync(); 后跟yield return new WaitUntil(()=&gt;task.IsComplete) 之类的操作。最后,你应该FirebaseFirestore.DefaultInstance之前调用CheckAndFixDependenciesAsync(至少在Android上)——尽管你可能在其他地方这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多