我只是遇到了火力和多数民众似乎正是我需要的。目前我正在尝试在我的团结项目中实施它,但首先我只是测试一下以适应它。火力地堡数据库 - 儿童值到UI文本
谁能告诉我怎么可以很容易地只收到一个孩子的价值在我的数据库,并将其保存在我的统一项目的变量?最后,我想在UI文本中显示值。它并不需要真正的动态。越容易越好,所以我可以肯定地理解它。
它尝试了如下:
variableXY.text = FirebaseDatabase.DefaultInstance.GetReference ("Databasename").Child ("Childname").GetValueAsync().ToString();
其结果是,它显示文本:System.Threading.Task.Task1 [Firebase.Database.Datasnapshot]
只使用该值是需要。
我将十分感谢,如果有人可以帮助我
非常感谢!
只是现在这可能使事情更清晰的显示我的完整代码。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using Firebase;
using Firebase.Database;
using Firebase.Unity.Editor;
public class DBManager: MonoBehaviour {
public Text MA1Sensor1;
public Text MA1Sensor2;
void Start() {
// Set up the Editor before calling into the realtime database.
FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://unityar-6eb13.firebaseio.com/");
// Get the root reference location of the database.
DatabaseReference reference = FirebaseDatabase.DefaultInstance.RootReference;
FirebaseDatabase.DefaultInstance
.GetReference("MA1")
.ValueChanged += HandleValueChanged;
}
void HandleValueChanged(object sender, ValueChangedEventArgs args) {
if (args.DatabaseError != null) {
Debug.LogError(args.DatabaseError.Message);
return;
}
Debug.Log (args.Snapshot.GetRawJsonValue());
MA1Sensor1.text = FirebaseDatabase
.DefaultInstance
.GetReference ("MA1")
.Child ("Zaehler")
.GetValueAsync()
//.Result
.ToString();
Debug.Log (MA1Sensor1.text);
}
// Update is called once per frame
void Update() {
}
}
哇,谢谢你真的很快的回答。 不幸的是,当我尝试运行并结合命令时,它总是崩溃我的团结。 有什么建议吗? 因为你说异步是为了后台操作,你认为它是我的案例的正确选择?该命令放置在“Value Changed事件”中,并且它假定更新该值。该值可能在每秒稍后改变,此外应该显示8个值。我想显示一些传感器活的da。你对此有何看法? 再次感谢您 – Cruzad0r
我认为这是使用Unity时的错误选择。我会使用同步调用或使用不同的线程来处理数据库通信。 –
是的,我认为有时候这样认为,但是它是增强现实和物品检测程序的一部分,所以到目前为止统一是必要的。 这将如何与同步呼叫一起工作? 谢谢 – Cruzad0r