Dav*_*sco 4 angularfire angularfire2 angular google-cloud-firestore
我正在使用AngularFire并在我的中启用了离线支持的持久性app.module.ts:
imports: [
AngularFireModule.initializeApp(environment.firebase),
AngularFirestoreModule.enablePersistence()
]
Run Code Online (Sandbox Code Playgroud)
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);
});
Run Code Online (Sandbox Code Playgroud)
对我来说奇怪的是,如果我将来自其他来源的修改作为应用程序应用于数据库,例如,如果我将自己登录到 Google Firestore 控制台并手动修改用户数据中的值,则不会获取这些数据。
如果我重新启动应用程序,它将始终获取本地保留的数据,并且永远不会注意到这些值已更改。
如果我分别删除持久性,则enablePersistence()可以正确获取数据。
你知道问题的原因是什么吗?
在这种情况下我不应该使用吗valueChanges()?
或者发生这种情况是因为我只获取该值一次(请参阅take(1)),因此永远不会获取更新的值?
提前感谢您的帮助
| 归档时间: |
|
| 查看次数: |
2258 次 |
| 最近记录: |