Firestore 中的侦听器未更新

Listeners not being updated in Firestore

我正在试用新的 Firestore。我有一个实时数据库运行良好的系统,但允许 Firestore 的新功能在发布之前从实时切换到 Firestore。我设法迁移了其中的大部分内容,但由于侦听器不侦听新更改,并且更改需要更长的时间才能在数据库中接收,因此我遇到了错误。

已编辑

示例:我发布了一篇文章,这篇文章在发布前需要审核,所以它在文档中的一个 "articlesUser" 集合中,字段为 "status",值为 "pending" .当我作为管理员发布文章时,状态从 "pending" 变为 "approved"。如果我点击编辑,这个新视图的状态仍然是 "pending".

示例代码:

getAllByUser(uid, limitToLast): Observable<any> {

const items$ = this.afs.collection(`countries/${this.countryDbName}/articlesUser/${uid}`, ref =>
ref.orderBy('createdAt').limit(limitToLast)).valueChanges();
...

其中 "this.afs" 是 AngularFirestore 的一个实例。后面的项目使用 Ngrx Store 存储在状态中。

当我更新 articlesUser 时,我会更新其他表,所以我使用批处理,使用 "set" 方法,(来自 Firebase 函数):

const batch = dbs.batch();
batch.set(dbs.collection(`countries/${country}/articlesUser/${uid}`).doc(article.key), listing);
...

我只允许在状态为Accepted时点击EDIT按钮,但是当我点击它进入Edit View时,这次加载的"document"状态仍然是"pending".所以它在视图中的状态为 "accepted" 因为它让我点击编辑,但在新视图中仍然具有 "pending" 状态。

是否需要 "push notifications to all listeners" Firestore 的功能或其他功能?

显然它可能是 bug,但目前它在我的情况下工作正常。

我创建了一个示例应用程序(您必须在 app.module 中填写 firebase 凭据才能使其工作),它重现了与我尝试实现的类似的东西:更改 "status" 字段并更新它无处不在。这是 stackblitz