在Firebase中未调用childChanged

时间:2018-10-30 11:25:52

标签: swift firebase firebase-realtime-database

我在每个新下载的聊天记录上附加一个.childChanged
当我第一次在Firebase控制台中更新子项的值时,将触发观察器。
任何后续更新都不会触发.childChanged观察者。
 我在所有行上都设置了断点。

注意:
初始数据-> firstName: "Chris"
UpdatedData-> firstName: "Larry"

//chats of the currentUser
var currentUserChats = [Chat]() {
    didSet(newValue){
      attachChildChangedObserverOn(chat: newValue)
    }
}

var observersArray = [String: UInt]() // chatUID:handle


//attach childChange listener on each chat downloaded
func attachChildChangedObserverOn(chat: Chat) {

    var handle: UInt = 0
    let ref =   DDatabaseRReference.chats.reference().child(chat.chatUID).child("users").child(currentUser.userUID)


    handle = ref.observe(.childChanged, with: {[weak self] (snapshot) in

        self?.observersArray[chat.chatUID] = handle

        guard snapshot.exists() else {return}
        let chatChanged = chat
    })

 }

0 个答案:

没有答案