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
所以对我来说,当我使用应用程序时,我的uid是vKl6rIUuI0WsbeWVORz3twPUfnd2。因此,如果我对这个名字姓氏的人进行投票,它应该告诉我我在上面的图像场景中存在。
问题是,似乎总是说它存在。 key和uid的console.log都是我的uid。这是ref.child(uid)...
的问题吗?
答案 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
});