У меня есть база данных, которая выглядит следующим образом.
Моя цель - попытаться получить все задачи, связанные с пользователем, используя uid, когда изображение профиля (красный квадрат) вверхуна пост (фиолетовый квадрат) нажимается. Я хотел бы, чтобы все задачи, созданные пользователем, отображались в виде страницы их профиля
До сих пор я был в состоянии получить связанные с ними данныеID поста, когда на него нажимают с помощью firebaseService.getObjectById (). Эти данные отображаются в представлении страницы фида сведений, но как получить все задачи, созданные с помощью пользователя задач (UID)? Я хотел бы иметь возможность создать страницу профиля для этого пользователя, чтобы отображались все его конкретные задачи.
Feed HTML
<div id ="post" *ngIf="posts" >
<!-- [routerLink]="['/tabs/details-feed/', post.postID]"> -->
<ion-card *ngFor ="let post of posts" [routerLink]="['/tabs/details-feed/', post.postID]">
<div id ="profileImage" >
<img id ="profileImageIn" [src]="post.profileImage">
</div>
<div id ="userName" ><h6>{{post.username}}</h6></div>
<img [src]="post.image">
<!-- <div class="card-title">{{post.title}}</div> -->
</ion-card>
</div>
функция firebase (извлекает данные для просмотра в feed.html)
export const getFeed = functions.https.onCall(async (req,res) =>{
const docs = await admin.firestore().collection('tasks').where('category', '==', 'Wipped').orderBy('date','desc').limit(20).get()
return docs.docs.map(doc => {
return {
postID: doc.id,
...doc.data()
}
})
})
feed.ts
posts: Array<any>;
sub
postsWipping
ajax
constructor(private aff: AngularFireFunctions) {
}
ngOnInit() {
this.tabTwoFeedInit();
}
tabTwoFeedInit (){
const getFeed = this.aff.httpsCallable('getFeed')
this.ajax = getFeed({}).subscribe(data=> {
console.log(data)
this.posts = data
})
}
Подробности подачи TS
constructor(
private firebaseService: FirebaseService,
private router: Router,
private navCtrl: NavController
) {
this.route.params.subscribe(params=> {
this.firebaseService.getObjectById(params['data']).subscribe( i => {
this.item = i;
})
});
}
ngOnInit() {
this.getData();
}
getData(){
this.route.data.subscribe(routeData => {
let data = routeData['data'];
if (data) {
this.item = data;
this.image = this.item.image;
}
})
}
Подробности подачи HTML
<ion-content >
<div class="container">
<div class="content">
<div *ngFor ="let image of image" >
<ion-row>
<ion-col size="12" offset="0">
<img id ="image" [src]="image" alt="this is the image"/>
</ion-col>
</ion-row>
</div>
</div>
<div class="overlay">
<ion-grid>
<ion-row>
<ion-col>
<ion-button color="dark"shape ="round" (click)="navigateBack()"> <ion-icon name="arrow-back"></ion-icon></ion-button>
</ion-col>
</ion-row>
</ion-grid>
<h2>{{item.title}}</h2>
<p>{{item.description}}</p></div>
</div>
</ion-content>