Заполните список просмотра из базы.Разные пути - PullRequest
0 голосов
/ 23 февраля 2019

Моя база данных выглядит так:

enter image description here

Я знаю, как извлечь genUserID и genUserID2 и отобразить информацию в Flatlist.Но как я могу сделать два запроса к одному толстому листу?Я хотел бы получить идентификаторы из eventAttenders / 2188058178082419, а затем получить имена из базы данных пользователей.Идентификатор пользователя получен из предыдущего запроса.

Мой код:

 constructor(props) {
      super(props);
      this.state = {
          arrData:[]
      };
  }

  componentDidMount = () => {

  var ref = firebase.database().ref("eventAttenders/2188058178082419");

  ref.once('value').then(snapshot => {
       var items = [];
       snapshot.forEach((child) => {
         items.push({
            id: child.val().id,
            name: child.val().name,
            email: child.val().yks,
         });
      });

      this.setState({ arrData: items});
  });

  }

1 Ответ

0 голосов
/ 23 февраля 2019

Умм, если вы правильно поняли ваш вопрос, проще всего было бы сначала получить все идентификаторы, а затем цикл, получить еще одну ссылку в список пользователей и получить данные.

constructor(props) {
      super(props);
      this.state = {
          arrData:[]
      };
  }

  componentDidMount = () => {

     var ref = firebase.database().ref("eventAttenders/2188058178082419");
     var items = [];
     ref.once('value').then(snapshot => {
       snapshot.forEach((child) => {
         const { id } = child;
         console.log(id) //make sure you are getting two ids genUserID and 
         // genUserID2 from 2188058178082419 ref
         firebase.database().ref(`users/${id}`).once('value').then(childsnapshot => {
       childsnapshot.forEach(keys => {
         console.log(keys);
         items.push({
            name: keys.name,
            phone: keys.phone,
         });
      });

     });

      this.setState({ arrData: items});
  });

  }
...