我在Android应用上使用Firebase数据库。通常,它工作正常。但是当数据库变大时,查询性能会变差。我在数据库上添加了大约5k的记录(在" elk"和#34; su"节点下),然后我在数据库上查询(在" cut""用户& #34;节点)但所有查询都非常慢。我在数据库规则上定义了数据索引,但它没有用。我该如何解决这个问题?
以下是我的疑问:
// 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);
答案 0 :(得分:2)
如果你想继续扩展,最好的办法就是在区域参考中复制你的数据,在那里它知道哪个elk / su是它的一部分。像这样:
{
zones: {
elk: {
"istan-besik": {
"-KSp)bL5....": true,
...: true
}
}
}
}
当你想要搜索所有你想做的事情的时候:
...child('zones').child(zoneId).child(cutType)
然后循环通过那些直接获得每个elk / su