如何根据其他值检查Firebase数据库中是否存在值

时间:2018-05-05 10:04:41

标签: javascript json firebase-realtime-database

以下代码检查ID U1EL5623 是否存在 但是我需要一个额外的条件 如果fName等于 John

,它应该仅返回true

有没有办法根据另一个项目的值来检查某个值是否存在?

CODE

ref.child("users").orderByChild("ID").equalTo("U1EL5623").once("value",snapshot => {
    const userData = snapshot.val();
    if (userData){
      console.log("exists!");
    }
});

数据

{
  "users": {
    "-KKUmYgLYREWCnWeHCvO": {
      "fName": "Peter",
      "ID": "U1EL9SSUQ",
      "username": "peter01"
    },
    "-KKUmYgLYREWCnWeHCvO": {
      "fName": "John",
      "ID": "U1EP7532",
      "username": "john.doe"
    },
    "-UIgmYgLWDRWCnWeHCpF": {
      "fName": "Alex",
      "ID": "U1EL5623",
      "username": "Alex.JP"
    }
  }
}

1 个答案:

答案 0 :(得分:2)

获得值后,您可以循环遍历所有结果及其对象,然后您还可以检查fName是否等于John:

ref.child("users").orderByChild("ID").equalTo("U1EL5623").once("value",snapshot => {
const userData = snapshot.val();
snapshot.forEach(function(childSnapshot) {
var childKey = childSnapshot.key;
var childData = childSnapshot.val();
if (userData && childData.fName === 'John'){
  console.log("exists!");
}

});