firebase:修改数据时出现奇怪的行为:重复

时间:2017-09-04 10:12:24

标签: typescript firebase

使用firebase和ionic(typescript)。

将新条目(使用推送)添加到集合(组)时,它会显示许多临时组。我使用on()方法订阅了它们,并在数据更改时发布事件。因此,每次我在数据库中添加数据时,客户端都会立即进行更改而无需任何交互。

一些截图应该可以更好地解释发生的事情:

添加前

before adding

添加一个组(test_2)后(直接在navctrl.pop()之后): adding a group

强制刷新列表或加载群组聊天并退出后: refresh

如果我直接在firebase中删除'test_2': delete_wtf

数据库中只存在那些'重复',而不是客户端。 添加后,所有重复项都是“有效”但不是删除后(因为它已从firebase中删除)。这仅在添加数据或删除时发生,而不是在初始化时发生。

我该如何防止这种情况?

1 个答案:

答案 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) => {...})