Невозможно получить данные из базы данных Firebase FireStore с реагировать нативно, используя состояние - PullRequest
0 голосов
/ 25 января 2020

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

state = {
    data: []
  };

  unsubscribe = null;

  componentDidMount() {
    const user = this.props.uid || Fire.shared.uid;
    const list = [];

    this.unsubscribe = Fire.shared.firestore
      .collection("users")
      .doc(data)
      .onSnapshot(doc => {
        list.push(data);
      });

      this.setState({
            data: list
      )};
  }

  componentWillUnmount() {
    this.unsubscribe();
  }

Структура базы данных такова, что у пользователя есть имя и адрес электронной почты. Я пытаюсь вызвать это, набрав: "{this.state.name.email}", который не работает в Flatlist. Я уже инициализировал свое приложение в другом файле, где Fire.shared = new Fire (); экспортируется. Если бы мне помогли как правильно экспортировать такие данные в штат, я был бы очень благодарен. Заранее спасибо!

1 Ответ

0 голосов
/ 25 января 2020

Вызов setState должен быть в обратном вызове, поэтому:

componentDidMount() {
  const user = this.props.uid || Fire.shared.uid;
  const list = [];

  this.unsubscribe = Fire.shared.firestore
    .collection("users")
    .doc(data)
    .onSnapshot(doc => {
      list.push(data);
      this.setState({
        data: list
      )};
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...