AngularFire не обнаруживает изменения, если постоянство включено - PullRequest
0 голосов
/ 13 февраля 2019

Я использую AngularFire , и в моем app.module.ts:

imports: [
   AngularFireModule.initializeApp(environment.firebase),
   AngularFirestoreModule.enablePersistence()
]

включена постоянная поддержка автономной поддержки. При запуске приложения я получаю пользователя с помощью valueChanges()например:

const doc: AngularFirestoreDocument<User> = this.myCollection.doc<User>(userId);

doc.valueChanges().pipe(take(1)).subscribe((user: User) => {
    console.log(user);
}, (err) => {
    console.err(err);
});

Мне странно, если я применяю изменения к базе данных из другого источника в качестве приложения, например, если я регистрируюсь в консоли Google Firestore и вручную изменяю значение впользовательские данные, эти данные не будут выбраны.

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

Если я удалюпостоянство, соответственно enablePersistence(), данные выбираются правильно.

Знаете ли вы, в чем причина проблемы?

Не следует ли использовать valueChanges() в таком случае?

Или это происходит потому, что я выбираю значение только один раз (см. take(1)), и поэтому обновленное значение никогда не выбирается?

Заранее спасибо за помощь

1 Ответ

0 голосов
/ 13 февраля 2019

5 минут спустя ... именно моя проблема заключается в том, что я не слушаю изменения и читаю только одно значение (take(1)), соответственно локально сохраненное значение будет прочитано и ничего больше после этого, поэтому обновленноезначение не будет получено

...