Как сделать так, чтобы имя моего профиля отображалось на панели инструментов с помощью коллекции Firetore? - PullRequest
0 голосов
/ 15 марта 2020

noob вопрос относительно Firestore. Я новичок в Firebase, и я создаю простое приложение, но не смог показать имя профиля или какую-либо коллекцию на панели инструментов, единственное, что показывал адрес электронной почты.

Вход и регистрация не имеют проблем, так как данные уже хранятся в базе данных пожарного депо. проблема только в моей приборной панели. Я не могу отобразить все, что находится во вложенной коллекции.

Журнал консоли не имеет проблем, он также показывает мне идентификатор пользователя и список вложенных коллекций. Это не отображается на моей приборной панели. Вот пример кода.

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

имя. фамилия, и био отображается пустым. Я не знаю, правильно ли я это делаю. Любая помощь приветствуется. Заранее спасибо.

1 Ответ

0 голосов
/ 15 марта 2020

Метод get() является асинхронным и возвращает 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 });
       }
    })      
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...