我有一个function
,它监听Firebase在数据库中添加和删除的childs
。
我对数组进行打印,在数组中我存储来自数据库的观察者之前的数据,然后存储来自观察者的数据,以便检查逻辑是否正常工作。快照将正确的对象添加到数组中或从数组中删除。
现在,我遇到的问题是,在控制台上,每个呼叫在.childAdded
和.childRemoved
中都得到多个打印。它不是随机的,从新的模式开始,像是第一个添加到Firebase的打印了2张。从那开始,它是递增的。第二次添加或第一次移除会给我3张照片。等等等
几乎就像它有一个柜台。
删除viewWillDisappear
中的观察者没有任何改变。
在Firebase中,我存储MKAnnotation
的坐标。添加一个注释后,我便将其发布,并通过observer
的{{1}}将其添加到地图中。删除它后,便从Firebase中将其删除,并从snapshot
观察者那里获得了快照,并更新了地图。通过为每个.childRemoved
设置一个断点,我注意到的是在observer
上,它随着打印的内容而逐渐循环。那应该意味着注释会由.childRemoved
观察者向地图添加该次数吗?我以为我解决了这个问题,但是很明显我没有解决。您能在这里发现问题吗?
和往常一样非常感谢
功能如下:
.chilAdded