[英]unity - retrieving data from firebase database
我是Firebase的新手,也是Unity的新手(同样,这是我的第一个堆栈交换文章)。 我知道如何写入Firebase,但不知道如何从数据树中检索。
我的数据的结构方式(大致)如下:
{
Users:{
"Email": ,
"Password":
}
}
我将如何访问用户的元素并检索其电子邮件和密码之类的东西?
我和你在同一条船上(无论是对火力阵营还是对团结来说都是新手),但是类似下面的内容对我来说却很有效。 我未经测试就将其调整为适合您的情况,因此可能会有一些小错误,但它应该可以帮助您入门。 也许更有经验的人可以对此进行改进。 我故意保留有关正确处理密码的详细信息。
//assuming
public class User {
public string email;
public string password;
public User (string email, string password) {
this.email = email;
this.password = password;
}
}
//inside some class
public void AddUser(){
User user = new User("email@email.com", "password");
string json = JsonUtility.ToJson(user);
Firebase.Database.DatabaseReference dbRef = Firebase.Database.FirebaseDatabase.DefaultInstance.RootReference
dbRef.Child("users").Push().SetRawJsonValueAsync(json);
}
public void GetUsers(){
Firebase.Database.FirebaseDatabase dbInstance = Firebase.Database.FirebaseDatabase.DefaultInstance;
dbInstance.GetReference("users").GetValueAsync().ContinueWith(task => {
if (task.IsFaulted) {
// Handle the error...
}
else if (task.IsCompleted) {
DataSnapshot snapshot = task.Result;
foreach ( DataSnapshot user in snapshot.Children){
IDictionary dictUser = (IDictionary)user.Value;
Debug.Log ("" + dictUser["email"] + " - " + dictUser["password"]);
}
}
});
通过创造性地从文档页面复制/粘贴,可以达到以下目的:
FirebaseDatabase.DefaultInstance
.GetReference("Users")
.ValueChanged += HandleValueChanged;
}
void HandleValueChanged(object sender, ValueChangedEventArgs args) {
if (args.DatabaseError != null) {
Debug.LogError(args.DatabaseError.Message);
return;
}
Debug.Log(arg.Snapshot.Child("Email").Value)
}
好像这是一个旧帖子,但可能会对某人有所帮助,
只需调用SaveAndRetrieveData()函数即可在需要的任何地方保存和检索数据
public void SaveAndRetrieveData() //from the database (server)...
{
//store the data to the server...
reference.Child("My Car Collections").Child("Sports Car").SetValueAsync("Ferrari");
print("data saved");
//Retrieve the data and convert it to string...
FirebaseDatabase.DefaultInstance.GetReference("My Car Collections").GetValueAsync().ContinueWith(task =>
{
DataSnapshot snapshot = task.Result;
string ss = snapshot.Child("Sports Car").Value.ToString();
print(ss);
print("data retrieved");
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.