我的调用哪里错了?第一个 console.log 导致 Angular 色对象,第二个 console.log 导致未定义。什么时候应该是用户。
componentDidMount(){
let user = fire.auth().currentUser;
let db = fire.database();
let roleRef = db.ref('/roles');
roleRef.orderByChild('user').equalTo(user.uid).once('value', (snapshot) => {
console.log(snapshot.val())
console.log(snapshot.val().user);
})
}
结果:
Firebase:
最佳答案
当您对 Firebase 数据库执行查询时,可能会出现多个结果。因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。
您的代码未考虑该列表。最简单的方法是使用 Snapshot.forEach():
roleRef.orderByChild('user').equalTo(user.uid).once('value', (snapshot) => {
snapshof.forEach((roleSnapshot) => {
console.log(roleSnapshot.val())
console.log(roleSnapshot.val().user);
});
})
关于javascript - 从 firebase 检索值时收到未定义的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50557679/