【问题标题】:Firebase returns fields as undefinedFirebase 将字段返回为未定义
【发布时间】:2017-08-16 00:49:08
【问题描述】:

我在尝试检索我在 Firebase 中设置的信息时遇到问题。当我做了一个 console.log 时,我得到了未定义的年龄和未定义的性别。

以下是我编写的用于将一些用户信息设置到 Firebase 中的代码。我使用了 set 方法,因为用户将只有一个用户配置文件。我不希望用户添加额外的配置文件,如果我使用推送方法就会出现这种情况。

onTestSubmit(){
  const { currentUser } = firebaseApp.auth();

  let { gender, age } = this.state;

  firebaseApp.database().ref(`/users/${currentUser.uid}/profile`).set({
    gender: this.state.gender,
    age: this.state.age
  })
}

这是从 Firebase 检索信息的代码。

fetchUserProfile(){
const { currentUser } = firebaseApp.auth();
firebaseApp.database().ref(`/users/${currentUser.uid}/profile`).orderByValue()
.on('child_added', snapshot => {
    console.log(snapshot.key, snapshot.value);
})
}

Chrome 调试器返回未定义的年龄和未定义的性别。我的 Firebase 数据库结构如下:

users

  3cUWAm052…
      profile
          age: “32”
          gender: “Male”

  JYPknwOipdS…
      profile
          age: “22”
          gender: “Female”

【问题讨论】:

  • 你试过snapshot.val() 吗?
  • 谢谢切尔尼夫!有用。谢谢

标签: javascript firebase react-native firebase-realtime-database firebase-authentication


【解决方案1】:

要从 firebase 中获取值,您必须使用 snapshot.val() 而不是 snapshot.value

【讨论】:

  • 感谢 wvicioso 的分享! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-19
  • 1970-01-01
相关资源
最近更新 更多