Есть ли .get () в angular firestore? - PullRequest
0 голосов
/ 07 мая 2020

Я видел, что есть .valueChanges () и .snapshotChanges (), которые оба прослушивают изменения в базе данных, но что, если я хочу получить данные только один раз? Я заметил, что добавление .pipe (take (1)) в конец .valueChanges () или .snapshotChanges () работает, но это то же самое, что и функция .get (), которую firebase firestore предоставляет в admin sdk и mobile sdk для Android и iOS?

Что я делаю

 this.items = this.itemCollection.valueChanges().pipe(take(1));

Чего я ожидаю

 this.items = this.itemCollection.get();

PS: Я новичок, чтобы реагировать.

1 Ответ

1 голос
/ 07 мая 2020

Способ без реакции

Если вы ищете способ сделать это без использования реакции, вы можете вызвать метод get () для ссылки вместо элемента коллекции.

this.itemCollection.ref.get().then((querySnap) => {
     //use your data here
     console.log(querySnap.docs);
}

Способ React

this.itemCollection.get () возвращает наблюдаемый объект типа QuerySnapshot, на который вы можете подписаться

this.itemCollection.get().subscribe((querySnap) => {
 console.log(querySnap.docs)
}
...