这是Firebase中users表的结构:

users
 |
 +- 12345
       |
       + firstName: .....
       + lastName: .....
 |
 +- 67890
       |
       + firstName: .....
       + lastName: .....

我想要做的是收集users表中的所有键并将它们存储在数组中。例如,返回时,数组将类似于:[ 12345, 67890 ]
到目前为止,我有:
var getAllUsersOrderByKey = function() {
    var deferred = $q.defer(),
        userRef = firebase.database().ref('users/').orderByKey();

    userRef.once("value").then(function(snapshot) {
        deferred.resolve(snapshot);
    });
    return deferred.promise;
}

所谓的回叫只是被记录的当前用户的对象。

我已经有了功能设置,当传入成员密钥时即提供相关数据(即firstName)

我正在尝试做的是将用户表中的所有键放入一个数组中。遍历该数组并获取每个用户的详细信息,然后将数据推送到另一个数组中,以便我可以对其进行处理。

如果这是一个非常直接的问题,并且我在文档中缺少某些内容,我深表歉意

最佳答案

解决了!
userRef没有被重置。因为我所有的firebase方法都隔离在服务中,所以我在全局设置了userRef变量。通常在每个函数开始时,我都会重置userRef,但是在这种情况下,我设置的是userRef = userRef.orderByKey(),这显然是userRef的最后一个设置值,这不是我想要的值。

10-07 12:43