我有以下观察员:
currentUserRef.child("invitedToPosts").queryOrdered(byChild: "timestamp").queryStarting(atValue: cutoff).observe(.childAdded) { (snapshot: FIRDataSnapshot) in
let postKey = snapshot.key
postsReference.child(postKey).observeSingleEvent(of: .value, with: { (snapshot: FIRDataSnapshot) in
if let dict = snapshot.value as? Dictionary<String,Any>{
//creating posts
}
}
我在这个代码工作一周前的情况下现在不行,而且我不知道从哪里开始调试它。
我在viewDidAppear中找到了那个观察者。当此代码在启动时运行时,我的视图中会正确创建帖子。但是,当我离开视图并返回代码时,我创建的帖子会运行两次。
我已尝试删除引用上的AllObservers,但我觉得这不是问题,因为代码之前没有这样做,我也没有删除观察者。
当我完全清除我的firebase数据库并发一个帖子时,帖子的数据只发布一次,但是当我从firebase读取它时,它正在运行代码相同的UID两次。
之前有任何问题吗?