为什么实时数据库的第一个firebase调用在第一次响应之后需要花费太多时间才能更快地运行

时间:2017-10-26 13:29:51

标签: xcode firebase swift3 firebase-realtime-database ios11

我在我的应用程序中使用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键的相同代码可以更快地响应。

1 个答案:

答案 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规则定义它们   用于提高查询性能的数据库规则。"