Вернуть подколлекцию в firebase, используя Angular firestore - PullRequest
0 голосов
/ 24 октября 2019

У меня есть подколлекция, которая называется сохраненной как вложенная коллекция для каждого пользователя. Пользователь имеет свои поля и коллекцию сохраненных, которая содержит два поля и массив. Я могу отображать только пользовательские поля, но не знаю, как правильно получить доступ к каждой пользовательской под коллекции.

 export class SavedComponent implements OnInit{
  public saved: Saved[];
  public currentUser: any = null;
  public user: User;
  private subscriptions: Subscription[] = [];

  constructor(

    // Adding saved service
    private savedService: SavedService,
    private auth: AuthService,
    private loadingService: LoadingService,
    private route: ActivatedRoute,
    private db: AngularFirestore
  ) {
    // this.loadingService.isLoading.next(true);
}

    this.subscriptions.push(
      this.auth.currentUser.subscribe( user => {
        this.currentUser = user;
        this.loadingService.isLoading.next(false);
        // Console log the current authentiucated user 
        console.log(this.currentUser);
      })
    );

    this.subscriptions.push(
      this.route.paramMap.subscribe( params => {
        const userId = params.get('userId');
        const userRef: AngularFirestoreDocument<User> = this.db.doc(`users/${userId}`);
        userRef.valueChanges().subscribe(user => this.user = user);
      })
    )


   // Example of html template

    <div class="row justify-content-center">
        <div class="col-xs-12 col-sm-8 col-md-6 text-center name">
            {{user?.firstName}} {{user?.lastName}}
        </div>
    </div>

1 Ответ

0 голосов
/ 24 октября 2019

Как прокомментировал Фрэнк ван Пуффелен, ваша лучшая ставка для доступа к подколлекции пользователя -

    this.db.collection(`users/${userId}/saved`)

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

Нельзя ссылаться на коллекцию в коллекции или документ в документе.

Важно, чтобы вы указали this.db.collection для коллекции или подколлекции и this.db. Документ для документов коллекции или подколлекции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...