javascript - 从 firebase 检索值时收到未定义的消息

标签 javascript firebase firebase-realtime-database

我的调用哪里错了?第一个 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);
    })
}

结果:

enter image description here

Firebase:

enter image description here

最佳答案

当您对 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/

相关文章:

javascript - 时刻范围 : Need to divide day into 15 minute slices

firebase - 同时从 firebase 以外的来源将数据保存在 bigquery 中

firebase - 如何修改电子邮件确认消息 - Firebase

ios - 如何在多个 View Controller 上使用数组?

javascript - firebase child_added 事件问题

javascript - 表单验证成功时显示隐藏元素

javascript - 作为字符串的 HTML DOM 元素名称

php - Android 的 FCM 通知

python - 如何使用python从firebase实时数据库中删除

javascript - 需要更智能的 jQuery 表排序功能