未在Firestore

时间:2017-10-25 09:36:59

标签: firebase angularfire2 google-cloud-firestore

我正在尝试新的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的东西?

1 个答案:

答案 0 :(得分:0)

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

我创建了一个示例应用程序(您必须在app.module中填充firebase凭据才能使其正常工作),它会重现类似于我尝试实现的内容:更改“status”字段并在任何地方更新它。这是stackblitz