Firebase检索数据的速度慢

时间:2017-05-20 04:32:17

标签: javascript firebase firebase-realtime-database

我有一个firebase应用程序,可以加载申请人列表。问题是当它已经加载了500多个申请人数据时它变得很慢。之前它仍然很快,因为它加载了少量数据(例如,100个申请人)。我使用这段代码:

userRef.on("value", function(snapshot) {
        snapshot.forEach(function(childSnapshot) {
            var applicants = [];
            // other code here
        });
        deferred.resolve(applicants);
    }, function (error) {
        deferred.reject(error);
    });

我正在考虑限制检索的数据数量并对数据进行分页但是不一样吗?因为我需要知道能够对其进行分页的数据的数量,因此检索将是相同的。

1 个答案:

答案 0 :(得分:0)

我可能错了,但.on("value")开始请求所有数据,直到它完成。因此,如果您有大量数据,则需要花费大量时间。另一种选择可以是.on("child_added")函数,它将每个子项添加到数据库时返回。但是当你第一次开始调用它时,它也会被调用。非阻塞/快速启动非常“完美”。

看看文档: https://firebase.google.com/docs/database/admin/retrieve-data#child-added

// Retrieve new posts as they are added to our database
ref.on("child_added", function(snapshot, prevChildKey) {
  var newPost = snapshot.val();
  console.log("Author: " + newPost.author);
  console.log("Title: " + newPost.title);
  console.log("Previous Post ID: " + prevChildKey);
});