Firestore snapshotChanges DocumentChangeType "удалено" никогда не отправлялось - PullRequest
0 голосов
/ 22 апреля 2020

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

Я получаю добавленные и измененные документы в порядке, но я никогда не получаю удаленные.

Вот пример моего кода:

this.db
      .collection<Test>('test', ref => ref.where('someid', '==', someid))
      .snapshotChanges()
      .subscribe(async snapshot => {
        for (const element of snapshot) {
          switch (element.type) {
            case 'added':
              // Works fine
              break;
            case 'modified':
              // Works fine
              break;
            case 'removed':
              // Never triggered
              break;
          }
        }
      });

Я предполагаю, что это из-за того, что я использую где. Кто-нибудь сталкивался с этим?

1 Ответ

0 голосов
/ 22 апреля 2020

Слушатель получит removed события для документов, которые удалены из результатов запроса , пока этот слушатель активен .

Так что в вашем случае это означает, что вы получите событие if:

  1. Слушатель активен, подписан на запрос и.
  2. Документ удален из коллекции или
  3. Значение someid поле в документе изменяется.
...