我在我的应用程序中使用firebase实时数据库,但我面临一个奇怪的问题。在第一次响应工作后,第一次firebase调用花费了太多时间。
Database.database().reference().child(FireBaseTable.bpmTable).child(firebaseKey).queryOrdered(byChild: "timestamp").observeSingleEvent(of: .value, with: { (snapshot) in
print("Initial load done2")
})
第一次响应后,使用diff / same键的相同代码可以更快地响应。
答案 0 :(得分:0)
解决方案可能是为您的规则中的数据编制索引:https://firebase.google.com/docs/database/security/indexing-data
{
"lambeosaurus": {
"height" : 2.1,
"length" : 12.5,
"weight": 5000
},
"stegosaurus": {
"height" : 4,
"length" : 9,
"weight" : 2500
}
}
索引可以像这样设置:
{
"rules": {
"dinosaurs": {
".indexOn": ["height", "length"]
}
}
}
" Firebase允许您使用数据对数据进行即席查询 任意子键。如果您事先知道您的索引是什么, 您可以通过Firebase Realtime中的.indexOn规则定义它们 用于提高查询性能的数据库规则。"