使用firebase和ionic(typescript)。
将新条目(使用推送)添加到集合(组)时,它会显示许多临时组。我使用on()
方法订阅了它们,并在数据更改时发布事件。因此,每次我在数据库中添加数据时,客户端都会立即进行更改而无需任何交互。
一些截图应该可以更好地解释发生的事情:
添加前 添加一个组(test_2)后(直接在navctrl.pop()
之后):
数据库中只存在那些'重复',而不是客户端。 添加后,所有重复项都是“有效”但不是删除后(因为它已从firebase中删除)。这仅在添加数据或删除时发生,而不是在初始化时发生。
我该如何防止这种情况?
答案 0 :(得分:0)
我发现使用firebase(这是一个bug?)我需要在使用之前关闭on()
方法。不这样做会触发on()
方法和subscribe()
多次,绕过我的变量重置,导致重复。
我在off()
之前添加了on()
方法,它解决了我的问题。
this.fireuser.child(firebase.auth().currentUser.uid).child('groups/').off();
this.fireuser.child(firebase.auth().currentUser.uid).child('groups/').on('value', (snapshot) => {...})