gpt4 book ai didi

如果启用持久性,AngularFire 不会检测更改

转载 作者:行者123 更新时间:2023-12-03 23:13:37 27 4
gpt4 key购买 nike

我正在使用 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) ),因此永远不会获取更新的值?

提前感谢您的帮助

最佳答案

5 分钟后......正是我的问题是我没有监听更改而只读取一个值( take(1) ),分别读取本地持久化的值,之后不会再读取,因此更新的值将不会不会被提取

关于如果启用持久性,AngularFire 不会检测更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54664250/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com