Запрос AngularFire2 не возвращает идентификатор документа - PullRequest
0 голосов
/ 14 марта 2019

Я использую AngularFire2 в сервисе для получения данных из коллекции Firestore. Код выглядит примерно так:

this.db.collection('organizations')
  .valueChanges()
  .pipe(first())
  .toPromise()
  .next(organization => console.log(organization));

Консоль регистрирует объект организации точно так, как ожидалось. Но этому объекту не хватает идентификатора документа Firestore.

Так что мне интересно, можно ли что-нибудь сделать, чтобы получить идентификатор как часть этого запроса ...

1 Ответ

1 голос
/ 14 марта 2019

Вы можете использовать снимок примерно так:

private getOrganizations(whereClause: any): any {
        return this.db.collection('organizations')
            .snapshotChanges()
            .pipe(
                map((docs: any) => {
                    return docs.map(a => {
                        const data = a.payload.doc.data();
                        const id = a.payload.doc.id;
                        return {id, ...data};
                    });
                })
            );
    }

Для более подробной информации о snapshotChanges проверьте это:

https://github.com/angular/angularfire2/blob/master/docs/firestore/documents.md#snapshotchanges

snapshotChanges ()

Что это такое? - Возвращает наблюдаемое данных в виде DocumentChangeAction.

Зачем использоватьэто? - Когда вам нужны данные документа, но вы также хотите хранить метаданные.Эти метаданные предоставляют базовый документ DocumentReference и идентификатор документа .Наличие идентификатора документа облегчает использование методов манипулирования данными.Этот метод дает вам больше возможностей с другими угловыми интеграциями, такими как ngrx, формы и анимации, благодаря свойству type.Свойство type для каждого DocumentChangeAction полезно для редукторов ngrx, состояний форм и состояний анимации. Что это?- Возвращает наблюдаемую информацию в виде

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