使用 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 时出错
添加 Firestore 依赖项会导致 Flutter 应用程序出错
在 FireStore Ui Recycler Paging Adapter 中使用 Paging 3 时出错:PagingConfig 无法转换为 Config