检查Key是否有Firebase中的Key - JS

Check if Key has Key in Firebase - JS

我有一个结构如下的 Firebase 实时数据库:

users
    userid1
        name: "name1"
        email: "email1"
        specialValue: "special"
    userid2
        name: "name2"
        email: "email2"

我想检查一个用户(我已经有一个用户 ID)是否有 specialValue 密钥。所以这应该 return 对 userid1 为真,对 userid2 为假。

我试过这个:

var check = firebase.database().ref('users').orderByKey().equalTo(userid).once("value", function (snapshot) {
    if (snapshot.exists()) {
        console.log("key exists");
    } else {
        console.log("key doesn't exist");
    }
});

如果您知道密钥,则不需要查询节点,因此这应该可行(并且一旦您有很多节点,速度会更快):

firebase.database().ref('users').child(userid).once("value").then((snapshot) => {
    if (snapshot.exists()) {
        console.log("exists");
    } else {
        console.log("doesn't exist");
    }
});

除了更短更快之外,这还保证只提供一个快照作为结果,其中一个查询可能有多个结果。即使您的查询只会匹配一个结果,API 仍然是 returns 作为列表的一个结果,您必须使用 forEach.

循环它