【发布时间】:2021-08-04 23:44:43
【问题描述】:
我用这个代码
DatabaseReference dtr = FirebaseDatabase.DefaultInstance.GetReference(path);
dtr.KeepSynced(true);
dtr.OrderByKey().EndAt(lastKey).LimitToLast(5).GetValueAsync()......
因为该路径有很多子路径,我每次使用 LimitToLast 只检索 5 个结果(以及稍后的 EndAt)
问题是检索一个结果需要 4 秒,以前是 1 秒。我担心它只会变得更糟。即使我将任务限制为只有 5 个,它显然仍然会遍历数据库中的所有子项,但我的数据库已经默认按 key 排序,我该怎么做才能让它更快?
我尝试了弗兰克的解决方案并将其更改为
DatabaseReference dtr = FirebaseDatabase.DefaultInstance.GetReference(path);
var query = dtr.OrderByKey().EndAt(lastKey).LimitToLast(5);
query.KeepSynced(true);
query.GetValueAsync().ContinueWith....
但我仍然需要等待 4 秒才能返回任务
【问题讨论】:
标签: c# firebase unity3d firebase-realtime-database