我是usig Unity 2018.3.0f2 Firebase 6.3
问题在于没有使用limitToLast(),下面的代码可以正常工作。我可以获得所有数据,即成千上万的数据。 但是我需要限制它,当我输入1或10或带有limittoLast或LimitToFirst(10)的任何数字时,团结无响应,在等待或停止运行Unit之后,CPU的运行开始更快,团结冻结,我必须停止从任务管理器统一并重新启动。那是一个错误还是我做错了什么?
FirebaseDatabase.DefaultInstance
.GetReference("users").OrderByChild("score").LimitToLast(100)
.GetValueAsync().ContinueWith(task =>{
if (task.IsFaulted)
{
Debug.LogError("failed");
}
else if (task.IsCompleted)
{ Debug("success")} );
答案 0 :(得分:0)
您正在调用GetValueAsync()
,它将覆盖您的LimitToLast()
子句,并获取“用户”引用中的所有数据。
此代码应使您更接近所需的内容:
DatabaseReference usersReference = FirebaseDatabase.DefaultInstance.GetReference("users");
Query query = usersReference.OrderByChild("score").LimitToLast(100);
query.ValueChanged += (object sender, ValueChangedEventArgs args) =>
{
// this lambda will get called up to 100 times
if (args.DatabaseError != null)
{
Debug.LogError(args.DatabaseError.Message);
return;
}
Debug.Log(args.Snapshot.GetRawJsonValue());
};