Angular8 + Firestore:如何修复连续服务调用中的无限循环

时间:2019-08-29 20:13:18

标签: firebase google-cloud-firestore observable angular8

我正在尝试使用Firestore(6.3.4)在Angular8(8.2)中开发CMS 我的应用程序具有一个对话框形式,当您单击“保存”时,它首先检查是否可以将数据输入添加到Firestore中。它可以是一个数组,因此take(1)选项不可用。然后,如果数据正确,则将其添加到Firebase,但add方法进入无限循环。

我尝试实现Observables,但实际上我不知道自己在做什么

在这里输入我的代码

dialogNewItem.afterClosed().subscribe(item => {
     this.itemService.getItemList(item.id).subscribe(itemList => {
          //do some checks in the itemList
          if(itemList is correct){
               //this fragment falls into an infinite loop
               this.depositService.createDepositList(item).then(() => {
                    console.log("Item added to the deposit correctly")
               })
          }
     })
})

//firestore item service
getItemList(id: string){
     return this.firestore.collection('item').doc(id).get()
}

//firestore deposit service
createDepositList(item){
     return this.firestore.collection('deposit').add(item);
}

我尝试更新depositList而不是创建一个新的,但是它也陷入了无限循环 似乎在组件中的另一个“内部”使用Firestore服务会导致问题

0 个答案:

没有答案