是否可以检测何时执行了Firebase快照

Is it possible to detect when a Firebase snapshot has been executed?

本文关键字:Firebase 快照 执行 何时 检测 是否      更新时间:2023-09-26

我正在执行以下Firebase查询:

var getAdmin = function() {
    var rootRef = new Firebase(FIREBASE_URI),
        adminList = [],
        deferred = $q.defer();
    rootRef.child('user').orderByChild('role').startAt(21).once('child_added',  function (administrator) {
        // Add each Administrator to Admin List
        adminList.push(administrator);
    });
    // deferred.resolve(?)
    return deferred.promise;
};

我想通过管理员列表解决这个承诺。如何检测Firebase快照是否已完全执行?

Firebase是一个实时平台,所以列表永远不会"完全执行"。

如果你只想要列表的那一部分在那个瞬间,你应该使用.once('value', callback)

rootRef.child('user').orderByChild('role').startAt(21).once('value', function(list) {
    // Add each Administrator to Admin List
    list.forEach(function(adminSnap) {
        adminList.push(adminSnap.val());
    });
    deferred.resolve(adminList)
});
return deferred.promise;