Я пытаюсь сопоставить две коллекции внутри пользователя firebase с их уникальным идентификатором пользователя и отобразить данные из каждой коллекции, если они существуют в этой коллекции. Всего есть 6 различных коллекций, которые мне нужно проверить, существуют ли эти пользователи, и если они это сделают, мне нужно будет отобразить всю их информацию.
Вот несколько экранов моей базы данных:
Я изменил его, так что все их детали теперь находятся в одной коллекции
поэтому я попробовал несколько вещей, чтобы попытаться сделать это. во-первых, вместо того, чтобы передавать данные в разные коллекции, я пытался собрать их все в один сбор, а затем получить оттуда информацию, но я не могу понять, как отобразить эти данные для каждого пользователя. Я думаю, что мне нужно передать его в массив, но я не совсем уверен в том, как это сделать, и не могу найти что-либо в Интернете, чтобы попытаться это выяснить. Я могу 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;
}