如何使用 Firestore 集合使我的个人资料名称出现在我的仪表板上?

How to make my Profile name appear on my Dashboard using Firetore collection?

关于 Firestore 的菜鸟问题。我是 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>
    )
  }
};

名字。姓氏和生物显示空白。我不知道我做的对不对。任何帮助将非常感激。提前谢谢你。

get() method is asynchronous and returns a Promise.

当此 Promise 完成时,其结果将传递给 then() 函数中的成功处理程序。

因此您需要进行如下操作:

 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 });
       }
    })