Firebase REST API 与 JS 客户端库

Firebase REST API vs JS Client Library

我想获取一个列表(可能超过 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请求方式?

firebaseRef.once() 使用 WebSocket。设置为重复事件观察器需要花费很多时间,并且它不会从 GET 请求的可缓存性中获益。它还利用了全局 firebase 身份验证状态,这比 REST 请求的 auth 参数更方便但灵活性较低。

如果您已经为重复事件处理程序设置了 WebSocket 连接,once 有时是获取最新数据的最便捷方式,这些数据无论如何都无法从缓存中获益。但有时您必须深入 REST 层才能全面优化性能。