检查孩子的参赛作品是否匹配

时间:2018-01-30 05:07:09

标签: firebase firebase-realtime-database firebase-authentication

let ref = firebase.database().ref('players').child(playerId).child('voters');
ref.child(uid).once('value', snap => {
    var key = snap.key;
    console.log("snapkey: " + key + " uid: " + uid)
    if (key === uid) {
        console.log("Exists")
    } else {
        console.log("Doesn't exist")
    }
});

我正在尝试查看保存来自firebase-auth的用户唯一ID的变量uid是否存在于我的数据库voters

enter image description here

所以对我来说,当我使用应用程序时,我的uid是vKl6rIUuI0WsbeWVORz3twPUfnd2。因此,如果我对这个名字姓氏的人进行投票,它应该告诉我我在上面的图像场景中存在。

问题是,似乎总是说它存在。 key和uid的console.log都是我的uid。这是ref.child(uid)...的问题吗?

3 个答案:

答案 0 :(得分:1)

let ref = firebase.database().ref('/players/' + playerID + '/voters');

ref.once('value', snap => {
    var value = snap.val()
    console.log(value)
    if (value !== null) {
        console.log("Exists")
    } else {
        console.log("Doesn't exist")
    }
});

https://firebase.google.com/docs/database/web/read-and-write#read_data_once

答案 1 :(得分:1)

快照总是有一把钥匙。总是。它将在您通过参考请求的位置。该密钥后面是否有 data 与快照始终有密钥无关。

您需要做的是检查该密钥背后的数据。它是空的吗?那里没有数据。一个号码?这是数据,它存在。

答案 2 :(得分:1)

使用.exists()方法:

let ref = firebase.database().ref('players').child(playerId).child('voters');
ref.child(uid).once('value', (snap) => {
    console.log(snap.exists());    // This will print true or false
});