Отображение пользовательских данных из БД Firebase - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь сопоставить две коллекции внутри пользователя firebase с их уникальным идентификатором пользователя и отобразить данные из каждой коллекции, если они существуют в этой коллекции. Всего есть 6 различных коллекций, которые мне нужно проверить, существуют ли эти пользователи, и если они это сделают, мне нужно будет отобразить всю их информацию. Вот несколько экранов моей базы данных: these are the weight categories for fighters minus light heavyweight

this is the user collection where their initial details are located Я изменил его, так что все их детали теперь находятся в одной коллекции

поэтому я попробовал несколько вещей, чтобы попытаться сделать это. во-первых, вместо того, чтобы передавать данные в разные коллекции, я пытался собрать их все в один сбор, а затем получить оттуда информацию, но я не могу понять, как отобразить эти данные для каждого пользователя. Я думаю, что мне нужно передать его в массив, но я не совсем уверен в том, как это сделать, и не могу найти что-либо в Интернете, чтобы попытаться это выяснить. Я могу console.log все пользовательские данные, и я могу успешно получить эти данные из Firebase, соответствующие UID пользователей, но не совсем уверен, как отобразить эти данные.

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

ionViewDidLoad() {
    this.afAuth.authState.take(1).subscribe(data=>{
      var ref = firebase.database().ref().child(`users/${data.uid}`);
      if(ref != null){
        ref.on("value", function(snapshot) {

          console.log(snapshot.val());
        }, function (errorObject) {
          console.log("The read failed: " + errorObject.code);
        });

      }
      else(err)=>{
        console.log(err);
      }


    }
    )

это часть моего HTML

<ion-item-sliding *ngFor="let key of filteredusers">
      <ion-item >
        <ion-avatar item-left>
          <img src="{{key.photoURL}}">
        </ion-avatar>
        <h2>{{key.displayName}}</h2> 
        <p>s</p> 
      </ion-item>

Я могу получить их отображаемое имя и фотографию профиля, но поскольку я следовал учебному пособию в начале, поэтому я могу получить отображаемое имя пользователя и URL-адрес фотографии, но я не уверен, как получить остальные. данных. Я относительно новичок в Ionic, поэтому любая помощь будет оценена.

Я пытался добавить что-то подобное, но это все еще не работает.

<h3>{{key.weight}}</
<h3>{{key.age}}</h3>

способ, которым я получаю данные из firebase, выглядит следующим образом.

firedata = firebase.database().ref('/users');


  getallusers() {
    var promise = new Promise((resolve, reject) => {
      this.firedata.orderByChild('uid').once('value', (snapshot) => {
        let userdata = snapshot.val();
        let temparr = [];
        for (var key in userdata) {
          temparr.push(userdata[key]);
        }
        resolve(temparr);
      }).catch((err) => {
        reject(err);
      })
    })
    return promise;
  }

1 Ответ

0 голосов
/ 10 мая 2018

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

 <ion-card-content> 
    <ion-item-sliding *ngFor="let key of filteredusers">
      <ion-item >
        <ion-avatar item-left>
          <img src="{{key.photoURL}}">
        </ion-avatar>
        <h2>{{key.displayName}}</h2> 
          <h3>{{key.weight}}</h3>
      </ion-item>

поэтому я добавил {{key.weight}}, так как теперь они находятся в одной коллекции, я могу просто вызывать эти данные в HTML.

...