Javascript 如何使用FireStore collection使我的个人资料名称显示在我的仪表板上?

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

关于Firestore的noob问题。我是firebase的新手,我正在创建一个简单的应用程序,但无法在我的仪表板上显示配置文件名或任何子集合。唯一显示的是电子邮件地址

登录和注册没有问题,因为数据已经存储在firestore数据库中。只有我的仪表板有问题,我无法显示子集合中的任何内容

控制台日志也没有问题,它向我显示了用户ID和子集合列表。它不显示在我的仪表板上。下面是示例代码

     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
。你很可能应该问一个新问题(因为这似乎是一个新问题)并提供一个答案。上面的例子已经发布了,对不起,我将发布一个新问题