如何在Firebase中使用“equalTo”和值列表?

时间:2016-02-05 07:45:15

标签: firebase

我有一些数据

{
  "1": {
    "result": 303
  },
  "2": {
    "result": 307
  },
  "3": {
    "result": 703
  },
  "4": {
    "result": 909
  },
  "5": {
    "result": 909
  }
}

所以我可以获得 3 键的结果字段:

ref.child("3").once("value", (snapshot) => {
  const data = snapshot.val();
  console.log(data.result);
});

但我想在一个查询中获取 3 4 5 键的结果数组。我怎么能这样做?

1 个答案:

答案 0 :(得分:6)

Firebase目前不支持多个equalTo()。 这将得到一个3,4和5的数组,但它只是检索最后三个:

ref.limitToLast(3).once("value", function(snapshot) {
    const data = snapshot.val();
    console.log(data.result);
});

否则我认为您必须获取所有结果并自行过滤。

类似的东西:

ref.child('posts').child('test').once("value", function(snapshot) {
        snapshot.forEach(function(childSnapshot) {
            if (childSnapshot.key() == 3 || childSnapshot.key() == 4 || childSnapshot.key() == 5) {
                data.push(childSnapshot.val().result);
            }
        });
        console.log(data);
    });