当我尝试检索我在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”
发布于 2017-03-23 16:03:30
要从firebase获取值,必须使用snapshot.val()
而不是snapshot.value
https://stackoverflow.com/questions/42976498
复制