我想获得一个列表(可能是100k +条目)作为只读值。
我可以使用:
firebaseRef.once('value', function(dataSnapshot) {
// handle read data.
});
或者我可以通过向Firebase端点发出GET请求来获取数据:
https://docs-examples.firebaseio.com/rest/saving-data/fireblog/posts.json
在此只读方案中,REST API似乎始终比使用库更快。特别是在较大的数据集上。
这是为什么?如果我只想读取数据,是否有任何理由不使用GET请求方法?
答案 0 :(得分:3)
firebaseRef.once()
使用WebSocket。设置为重复事件观察者需要花费相同的时间,并且它不会受益于GET请求的可缓存性。它还使用了全局firebase auth状态,它比REST请求的auth
参数更方便但更不灵活。
如果您已经为重复事件处理程序设置了WebSocket连接,那么once
有时是获取最新数据的最便捷方式,这些数据无论如何都不会受益于缓存。但有时你必须深入到REST层才能完全优化性能。