Firebase将字段返回为未定义

时间:2017-03-23 12:46:25

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

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

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

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”

1 个答案:

答案 0 :(得分:0)

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