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

Rin*_*nat 4 firebase

我有一些数据

{
  "1": {
    "result": 303
  },
  "2": {
    "result": 307
  },
  "3": {
    "result": 703
  },
  "4": {
    "result": 909
  },
  "5": {
    "result": 909
  }
}
Run Code Online (Sandbox Code Playgroud)

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

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

但是,我想获得的阵列结果3,4,5个键在一个查询.我怎样才能做到这一点?

小智 6

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

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

否则我认为你必须取得所有结果并自行过滤.

这样的事情:

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);
    });
Run Code Online (Sandbox Code Playgroud)