我正在尝试新的Firestore。我有一个系统,实时数据库工作正常但新功能允许Firestore在发布之前从Realtime切换到Firestore。我设法迁移了大部分内容,但由于侦听器不听新的更改而导致错误,并且更改需要更长时间才能在数据库中接收。
EDITED
示例:我发布了一篇文章,这篇文章需要在发布之前进行审核,因此它在" articlesUser"在带有字段" status"的文档中收集和价值"待定"。当我作为管理员发布文章时,状态从" pending"到"批准"。如果我点击编辑,这个新视图的状态仍然是"等待"。
示例代码:
getAllByUser(uid, limitToLast): Observable<any> {
const items$ = this.afs.collection(`countries/${this.countryDbName}/articlesUser/${uid}`, ref =>
ref.orderBy('createdAt').limit(limitToLast)).valueChanges();
...
其中&#34; this.afs&#34;是AngularFirestore的一个实例。稍后的项目将使用Ngrx Store存储在状态中。
当我更新articlesUser时,我会更新其他表,所以我使用批处理,使用&#34; set&#34;方法,(来自Firebase功能):
const batch = dbs.batch();
batch.set(dbs.collection(`countries/${country}/articlesUser/${uid}`).doc(article.key), listing);
...
我只允许在状态为“已接受”时单击“编辑”按钮,但是当我单击它并转到“编辑视图”时,&#34;文档&#34;这次加载仍然具有状态&#34;待定&#34;。所以它的地位已被接受&#34;在视图中,因为它让我点击编辑,但在新视图中仍然有&#34;待定&#34;状态。
是否需要向所有听众推送通知&#34;功能或Firestore的东西?
答案 0 :(得分:0)
显然它可能是bug,但目前在我的情况下它可以正常工作。
我创建了一个示例应用程序(您必须在app.module中填充firebase凭据才能使其正常工作),它会重现类似于我尝试实现的内容:更改“status”字段并在任何地方更新它。这是stackblitz