swift - 当新的子/节点/监听器添加到 Firebase 连接时,如何获取 Firebase 消息?

标签 swift firebase-realtime-database

当我第一次使用此代码时,我已经从 Firebase 数据库连接获取了数据,因此其中没有问题,但是当我的 Firebase 连接有新的/最后一个子级时,我没有收到任何命中火力基地。

func fireBaseSubscription() {

    if UserDefaults.standard.bool(forKey: "ISUSERLOGGEDIN") == true{

        let fireBaseNode = (UserDefaults.standard.object(forKey: "firebase_node") as? [String])!
        let ref = Database.database().reference()

        for i in fireBaseNode {
            // one_to_one_chat Listner


             ref.child(i).child("one_to_one_chat").queryLimited(toLast: 1).observeSingleEvent(of: .childAdded, with: { (snapshot) in

             let postOnetoOneChatDict = snapshot.value as? NSDictionary
             self.fireBaseOnetoOneChatListner(postOnetoOneChatDict: postOnetoOneChatDict!)

             print(snapshot)
             print(postOnetoOneChatDict as Any)
             }, withCancel: { (Error) in
             print(Error)
             })

             // users listner
             ref.child(i).child("users").queryLimited(toLast: 1).observeSingleEvent(of: .childAdded, with: { (snapshot) in
             let postUserDict = snapshot.value as? NSDictionary
             self.fireBaseUsersListner(postUserDict: postUserDict!)
             print(snapshot)
             print(postUserDict as Any)
             }, withCancel: { (Error) in
             print(Error)
             })
        }
    }
}

最佳答案

您正在通过 .observeSingleEvent(of: .childAdded 观察单个事件,该事件只会被触发一次。

将其更改为.observe(.childAdded),每次添加子项时都会调用它。

关于swift - 当新的子/节点/监听器添加到 Firebase 连接时,如何获取 Firebase 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56882133/

相关文章:

ios - supportedInterfaceOrientationsForWindow 未在 iPad 中调用

javascript - Firebase 数据库删除所有等于特定值的节点

javascript - 无法通过推送 ID 引用 firebase 数据

javascript - 检索 Array Firebase 数据库的键和元素

ios - 如何使用 Swift 将 Firebase 3 中的不同数据对象相互关联?

swift - 如何快速自动化工厂设计模式?

ios - AVSpeechUtterance 完成处理程序

ios - iOS 中 gDrive SDK 集成中的重复符号问题

Swift:Alamofire HTTP 代理

java - 从 firebase 数据库获取数据