当我尝试检索我在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”
答案 0 :(得分:0)
要从firebase获取值,您必须使用snapshot.val()
而不是snapshot.value