Javascript 如何使用FireStore collection使我的个人资料名称显示在我的仪表板上?
关于Firestore的noob问题。我是firebase的新手,我正在创建一个简单的应用程序,但无法在我的仪表板上显示配置文件名或任何子集合。唯一显示的是电子邮件地址 登录和注册没有问题,因为数据已经存储在firestore数据库中。只有我的仪表板有问题,我无法显示子集合中的任何内容 控制台日志也没有问题,它向我显示了用户ID和子集合列表。它不显示在我的仪表板上。下面是示例代码Javascript 如何使用FireStore collection使我的个人资料名称显示在我的仪表板上?,javascript,firebase,google-cloud-firestore,reactjs-native,Javascript,Firebase,Google Cloud Firestore,Reactjs Native,关于Firestore的noob问题。我是firebase的新手,我正在创建一个简单的应用程序,但无法在我的仪表板上显示配置文件名或任何子集合。唯一显示的是电子邮件地址 登录和注册没有问题,因为数据已经存储在firestore数据库中。只有我的仪表板有问题,我无法显示子集合中的任何内容 控制台日志也没有问题,它向我显示了用户ID和子集合列表。它不显示在我的仪表板上。下面是示例代码 const curUser = firebase.auth().currentUser; con
const curUser = firebase.auth().currentUser;
const { email } = curUser;
const dbUser =
firebase
.firestore()
.collection('users')
.doc(curUser.uid)
.get()
.then(doc => {
if (!doc.exists) {
console.log('No such document!');
} else {
console.log(doc.id, doc.data());
}
})
const { firstname, lastname, bio } = dbUser;
this.setState({ firstname, lastname, bio, email });
};
render() {
return (
<View >
<Text>
{this.state.firstname} {this.state.lastname}
</Text>
<Text>
{this.state.bio}
</Text>
<Text>
{this.state.email}
</Text>
</View>
)
}
};
const curUser=firebase.auth().currentUser;
const{email}=curUser;
常数dbUser=
火基
.firestore()
.collection('用户')
.doc(curUser.uid)
.get()
。然后(doc=>{
如果(!doc.存在){
console.log('没有这样的文档!');
}否则{
console.log(doc.id,doc.data());
}
})
const{firstname,lastname,bio}=dbUser;
this.setState({firstname,lastname,bio,email});
};
render(){
返回(
{this.state.firstname}{this.state.lastname}
{this.state.bio}
{this.state.email}
)
}
};
名字。lastname和bio显示为空。我不知道我做得对不对。任何帮助都将不胜感激。提前感谢。该方法是异步的,并返回一个
当这个承诺实现时,它的结果将传递给函数中的成功处理程序
因此,您需要执行以下操作:
firebase
.firestore()
.collection('users')
.doc(curUser.uid)
.get()
.then(doc => {
if (!doc.exists) {
console.log('No such document!');
} else {
console.log(doc.id, doc.data());
const { firstname, lastname, bio } = doc.data();
this.setState({ firstname, lastname, bio, email });
}
})
不知怎的,我得到了一个错误“TypeError:undefined不是对象(评估'dbUser.firstname')”,只在控制台上显示。它不会显示在屏幕上,我仍然可以在应用程序中导航并编辑字段,但每次安装时,控制台上都会出现错误消息。很抱歉,无法帮助您,因为我们不知道什么是
'dbUser.firstname
。你很可能应该问一个新问题(因为这似乎是一个新问题)并提供一个答案。上面的例子已经发布了,对不起,我将发布一个新问题