Отслеживание изменений в коллекции - PullRequest
0 голосов
/ 15 октября 2019

В документации мы видим.

stateChanges ()

Что это? - Возвращает Observable из самых последних изменений в качестве DocumentChangeAction [].

В коде мы видим https://github.com/angular/angularfire2/blob/fdf6c9bfeae37e9c781f0d24b590e23f7b658c0e/src/firestore/collection/collection.ts#L59

Прослушивание последних изменений в потоке. Этот метод возвращает изменения по мере их появления, и они не сортируются по порядку запросов. Это позволяет вам построить свою собственную структуру данных.

в действительности

this._store
        .collection(entity.path)
        .stateChanges().pipe(
           tap(x=>console.log(x))
        ).subscribe();

Консоль говорит:

0: {type: "added", payload: {…}}
1: {type: "added", payload: {…}}
2: {type: "added", payload: {…}}
3: {type: "added", payload: {…}}
4: {type: "added", payload: {…}}
...

мы видим, что все изменения из всей историибыли зарегистрированы.

Есть ли способ наблюдать только изменения с момента, когда я начал наблюдать?

Это ошибка или предполагаемое поведение?

1 Ответ

1 голос
/ 15 октября 2019

Это работает, как ожидалось. Ваш код запрашивает каждый документ в коллекции, обозначенный entity.path, поэтому вы можете ожидать получения каждого документа в исходном наборе результатов. Если вы не хотите, чтобы все документы в собрании, вам понадобится фильтр предложений "где", который определяет, какие документы вы хотите. Если ваш интерес основан на времени запроса, рассмотрите возможность добавления поля отметки времени к каждому документу, чтобы вы могли использовать его в фильтре, который предоставит вам только те документы, которые появятся после текущего момента времени.

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