首页 > 解决方案 > 无法访问 firebase orderByChild 查询结果中的值

问题描述

使用 Firebase JS 库。尝试访问 firebase 查询结果中的值但没有成功:

  var ref = firebase.database().ref(`/listUser/${userId}/`);

  ref.orderByChild('email').equalTo('myemail@myemail.com')
  .once("value", 
  res => {
  console.log(res.val());
  console.log(res.key);
  })

第一个 console.log 返回:

{R74E2nc: {email: "myemail@myemail.com", userKey: "R74E2nc"}}

第二个 console.log 返回我在引用中传递的 userId:

BKjAJm

我想得到的值是 R74E2nc,因为这是我不知道并且需要进一步操作的值。我尝试了 res.val().key 和 res.val().userKey 但它们未定义。

数据库结构为:

"listUser": {
     "BKjAJm": {
        "R74E2nc": {email: "myemail@myemail.com", userKey: "R74E2nc"}
                },
                {
        "x1x22": {email: "my2@my2.com", userKey: "x1x22"}

                }
             } 

如何访问此值“R74E2nc”?

谢谢你。

标签: javascriptjsonfirebase

解决方案


您可以通过将“value”替换为“child_added”来尝试此代码

 var userz = firebase.database().ref()
    .orderByChild("email")
    .equalTo('myemail@myemail.com')
    .once("child_added", function(snapshot) {
        ...
    });

推荐阅读