当我第一次使用此代码时,我已经从 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/