Firebase实时数据库在Xamarin Android上检索到单个数据



当我在OndataChange上放置断点时,我成功地从实时数据库firebase中获取了数据,但当我将断点放在OndataChange方法之后时,记录现在为空。

public void OnDataChange(DataSnapshot dataSnapshot)
{

if (dataSnapshot.Value != null)
{
reclist.Clear();
TempDB rec = new TempDB();

rec.ID = dataSnapshot.Key;
rec.Firstname = dataSnapshot.Child("FirstName").Value.ToString();
rec.Lastname = dataSnapshot.Child("LastName").Value.ToString();
rec.Address = dataSnapshot.Child("Address").Value.ToString();
rec.ContactNo = dataSnapshot.Child("Contact number").Value.ToString();
rec.Email = dataSnapshot.Child("EmailAddress").Value.ToString();
rec.Password = dataSnapshot.Child("Password").Value.ToString();
idd = rec.ID;
Console.WriteLine(id.ToString());
reclist.Add(rec);
}
}

这是因为数据是从Firebase异步加载的,而代码的其余部分仍在继续。然后,一旦加载了数据,就会用它调用onDataChange。这意味着,在您共享的代码之后的代码确实在onDataChange内部的代码之前运行,并且可以按预期工作。

解决方案总是一样的:任何需要数据库数据的代码都需要位于onDataChange内部,从那里调用,或者以其他方式同步。

看看这两个(安卓(例子,了解一些想法:

  • getContactsFromFirebase((方法返回一个空列表
  • 在Firebase Listener中设置Singleton属性值

最新更新