使用 Firestore 限制项目时出错

Posted

技术标签:

【中文标题】使用 Firestore 限制项目时出错【英文标题】:Error when limiting items with Firestore 【发布时间】:2018-05-02 22:40:37 【问题描述】:

当我使用 Firestore 时,我会执行以下操作:

我查询有限制的项目列表。 我从该列表中删除了一项,然后又删除了另一项。 其余项目开始消失(它们不会被删除,只是不会向已登录的用户显示)。 如果我清除缓存/cookie 或使用隐身窗口,消失的项目会再次显示,但如果我再次删除另一个项目,它们也会开始为该用户消失。

我创建了一个 Stackblitz 来重现错误:https://stackblitz.com/edit/angular-yhbuma

要重现应用,您只需在 app.module.ts 中填写 Firebase 配置:

点击添加项目开始添加项目,直到你有足够的超过 1 个“页面”。然后点击删除,在一个,然后在另一个...

【问题讨论】:

我快速浏览了您的项目。看看ngrx-effects,无论如何,从那里调用服务,然后通过过滤保存你在商店和reducer return watch上获得的所有东西。您还可以使用实体执行 CRUD 操作。 我曾经使用过效果器,但是在使用 Angular Universal 时它们给了我错误,所以我避免使用它们。我刚从 Firebase 实时数据库迁移到 Firestore,使用实时数据库时,这段代码没有问题。 尝试从缓存(LocalStorage)而不是变量引用pageLimit(编辑firebase配置)-stackblitz.com/edit/angular-hugmk8 【参考方案1】:

item.service 函数中,getItems 返回一个 Observable,因此当您在 home 组件中调用 getItems() 时,您不会取消订阅之前的订阅。这会导致当您调用此方法 3 次时,您会为此观看 3 次,这可能会导致您的错误。尝试添加一些订阅处理程序并在调用 next https://stackblitz.com/edit/angular-ldvhff 时取消订阅上一个

【讨论】:

以上是关于使用 Firestore 限制项目时出错的主要内容,如果未能解决你的问题,请参考以下文章

在颤动中使用 REST api 将列表数据发送到云 Firestore 时出错

在 iOS 中安装 Firestore 时出错?

在 Firestore 中执行复合查询时出错

添加 Firestore 依赖项会导致 Flutter 应用程序出错

在 FireStore Ui Recycler Paging Adapter 中使用 Paging 3 时出错:PagingConfig 无法转换为 Config

将图像上传到 Firebase 存储并同时将文本输入到 Firestore 时出错