【问题标题】:Error when limiting items with Firestore使用 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

标签: angular firebase google-cloud-firestore


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-11-16
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 2023-04-09
    • 1970-01-01
    • 2011-08-05
    相关资源
    最近更新 更多