Возвращение UID в запросе Firebase - PullRequest
0 голосов
/ 27 февраля 2020

Следующий запрос возвращает мне набор данных на основе идентификатора пользователя. Как мне сделать, чтобы убедиться, что он возвращает UID каждого документа в запросе.

  getWebsitesByUserId(id) {
    return this.afs.collection('websites', ref => ref.where('createdBy', '==', id)).valueChanges();
  }

Я понимаю, что это включает в себя что-то вроде этого:

  return this.afs.collection('websites').doc(id).snapshotChanges().pipe(map(action => {
    const data = action.payload.data();
    const uid = action.payload.id;
    return {uid, ...data};
  }));

Просто не знаю, как реализовать в запросе.

1 Ответ

1 голос
/ 28 февраля 2020

В соответствии с этим запросом извлечения в репо AngularFire теперь есть опция, позволяющая передавать строку в метод valueChanges в ссылке на коллекцию.

Эта строка будет именем свойства, которое будет содержать идентификаторы документов.

Например:

collectionRef.valueChanges('myIdKey').subscribe()

Издаст:

emits [ { myIdKey: 'MrfFpRBfWLTd7LqiTt9u', ...data }, ... ]

Так что в вашей ситуации, я думаю, это будет быть примерно таким:

 getWebsitesByUserId(id) {
    return this.afs.collection('websites', ref => ref.where('createdBy', '==', id)).valueChanges('uid');
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...