Как получить все сообщения, связанные с одним пользователем, при нажатии на его фотографию профиля? - PullRequest
1 голос
/ 08 ноября 2019

У меня есть база данных, которая выглядит следующим образом.

enter image description here

Моя цель - попытаться получить все задачи, связанные с пользователем, используя uid, когда изображение профиля (красный квадрат) вверхуна пост (фиолетовый квадрат) нажимается. Я хотел бы, чтобы все задачи, созданные пользователем, отображались в виде страницы их профиля enter image description here

До сих пор я был в состоянии получить связанные с ними данные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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...