Свойство then не существует для типа Observable - PullRequest
0 голосов
/ 03 мая 2020
db.collection("cities").get()
  .then(function(querySnapshot) {
    querySnapshot.forEach(function(doc) {
      // doc.data() is never undefined for query doc snapshots
      console.log(doc.id, " => ", doc.data());
  });

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

1 Ответ

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

Если вы хотите рассматривать это как обещание, вы можете преобразовать его в обещание. Это не хак, если только get() производит только одну эмиссию. Но Firebase ожидала, что вы разберетесь с потоком, исходящим из get(). В любом случае, чтобы преобразовать его в обещание:

db.collection("cities").get().toPromise()
  .then((querySnapshot: QuerySnapshot<DocumentData>) => {
    querySnapshot.forEach((doc: any) => {
      // doc.data() is never undefined for query doc snapshots
      console.log(doc.id, " => ", doc.data());
  });

Если вы решите справиться с потоковой передачей, исходящей из get(), то, как Firebase API ожидает от вас:

db.collection("cities").get()
  .subscribe((querySnapshot: QuerySnapshot<DocumentData>) => {
    querySnapshot.forEach((doc: any) => {
      // doc.data() is never undefined for query doc snapshots
      console.log(doc.id, " => ", doc.data());
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...