我在 Android 应用程序上使用 Firebase 数据库。正常情况下,它工作得很好。但是当数据库变得越来越大时,查询性能就会变得越来越差。我在数据库上添加了大约 5k 记录(在“elk”和“su”节点下),然后我在数据库上查询(在“cut”和“user”节点上),但所有查询都非常非常慢。我在数据库规则上定义了数据索引,但它不起作用。我该如何解决这个问题?
这是我的疑问:
// query to get the zones followed by user
FirebaseDatabase.getInstance()
.getReference()
.child("user")
.child(userID)
.child("zones");
// query to get cuts on a zone
FirebaseDatabase.getInstance()
.getReference()
.child("cut")
.child(cutType)
.orderByChild("zoneID")
.equalTo(zoneID);
如果您想继续扩展,最好的办法是将您的数据复制到一个区域引用中,它知道哪个 elk/su 是其中的一部分。像这样的事情:
{
zones: {
elk: {
"istan-besik": {
"-KSp)bL5....": true,
...: true
}
}
}
}
这样,当您想要搜索所有内容时,您只需执行以下操作:
...child('zones').child(zoneId).child(cutType)
然后循环遍历这些直接获取每个 elk/su
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)