我正在使用Board
(RealTime-database
)和Firebase 7.3.2
。
当我使用Unity
方法时,查询需要很长时间(1.5到2分钟)才能返回响应。
但是,当我加载整个数据或在没有LimitToLast()
方法的情况下执行此查询时,这不会花费很长时间。
我想问一下每个人在使用实时Firebase数据库进行开发期间是否存在此问题。
我的数据库包含1700个房间。
这是查询:
LimitToLast
这就是数据库中房间收集的结构:
var result = await FirebaseDatabase.DefaultInstance.GetReference("Rooms")
.OrderByChild("CreationDate").LimitToLast(10).GetValueAsync();
答案 0 :(得分:0)
确定要在Firebase Realtime Database Security Rules中完成索引编制吗?如果未完成,则按以下方式执行查询: 1.将所有数据从“ Rooms”分支下载到Unity客户端。 2.根据您在Unity客户端上的订购标准对数据进行排序。 3.丢弃此排序数据中除最后10个子项之外的所有子项。
如果您只想生育最后10个孩子,我敢肯定没有人愿意这样做。最后10个子节点的排序和限制应在数据库服务器本身上进行 这将确保它足够快以毫秒为单位给您结果。为此,您必须先index your data,然后运行查询。