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

如何使用;equalTo“;在Firebase中使用值列表?,firebase,Firebase,我有一些数据 { "1": { "result": 303 }, "2": { "result": 307 }, "3": { "result": 703 }, "4": { "result": 909 }, "5": { "result": 909 } } 所以我可以得到3个键的结果字段: 但我想在一个查询中得到3、4、5个键的结果数组。我如何才能做到这一点?Firebase目前不支持多个equalTo()s。

我有一些数据

{
  "1": {
    "result": 303
  },
  "2": {
    "result": 307
  },
  "3": {
    "result": 703
  },
  "4": {
    "result": 909
  },
  "5": {
    "result": 909
  }
}
所以我可以得到3个键的结果字段:


但我想在一个查询中得到3、4、5个键的结果数组。我如何才能做到这一点?

Firebase目前不支持多个
equalTo()
s。 这将得到一个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);
    });
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);
    });