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

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

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

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

    angular - 使用Firestore限制物品时出错-LMLPHP

    只需单击“添加项目”开始添加项目,直到您有足够的空间来容纳超过1个“页面”。然后在其中一个中单击DELETE,然后在另一个中单击...

    最佳答案

    item.service函数中,getItems返回一个Observable,因此,当您在home组件中调用getItems()时,您无需取消订阅先前的订阅。当您将此方法调用3次时,就会导致这种情况,而您对此进行了3次观察,这可能会导致您的错误。尝试添加一些订阅处理程序,并在调用下一个https://stackblitz.com/edit/angular-ldvhff时退订上一个

    10-06 11:47