我正在一个使用 Unity 和 Firebase 的学校项目中工作,我需要在文本框中显示当前用户的用户名。
我已经从 Firebase 获取数据,但是当我尝试将 userNameText 的文本设置为它时,没有任何反应。
这是我的代码:
变量:
private DatabaseReference reference;
private string userName;
public Text userNameText;
初始化:
void Start()
{
//database reference (I'm hiding the project id)
FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://projectID.firebaseio.com/");
// Get the root reference location of the database.
reference = FirebaseDatabase.DefaultInstance.RootReference;
GetUserData();
}
获取用户数据():
public void GetUserData()
{
reference.Child("users").Child(PlayerPrefs.GetString("userUID")).GetValueAsync().ContinueWith(task =>
{
if (task.IsFaulted)
{
Debug.Log("something was wrong");
}
else if (task.IsCompleted)
{
Dictionary<string, object> results = (Dictionary<string, object>)task.Result.Value;
userName= (string)results["userName"];
Debug.Log(userName);
userNameText.text = userName;
}
});
}
当我运行项目时,它只是在控制台中显示用户名,但文本框尚未更新。