如何使用Firebase按子元素值过滤元素?

时间:2016-07-10 19:41:42

标签: javascript firebase firebase-realtime-database

我有一个名为users的集合,它充满了由Firebase uids命名的元素(用户),例如:

users/1k239k1293k01k923

假设我需要检索具有属性provider == "facebook"的用户(或所有用户)。

users/$someuser/provider == "facebook"

这样的东西

问题是我不知道哪个用户会匹配此属性。

我正在使用Javascript SDK (网络)

1 个答案:

答案 0 :(得分:3)

Firebase documents非常好,我建议在那里阅读。

JS:

// Provider
var provider = "facebook";
// Find all users with certain provider
var ref = firebase.database().ref("users");
    ref.orderByChild("provider").equalTo(provider).on("value", function(snapshot) {
    // iterate through each match
    snapshot.forEach(function(childSnapshot) {
        // key will be "ada" the first time and "alan" the second time
        var key = childSnapshot.key;
        // childData will be the actual contents of the child
        var childData = childSnapshot.val();
     });
});

这是orderByChildequalToforEach的组合。 forEach用于迭代每场比赛,并从那里做任何你想做的事。

.on("value"可以更改为.once("value.on("child_added等。