因此该函数会获取我的firebase服务器中的所有子项,然后模糊搜索它以获取我的deviceID字符串。如果找到它,则将子项的名称记录到聊天数组中,将最后一个子子项记录到消息数组中。问题是,当我打印它时它是空的,即使应该有数据。我知道self.chats.append行的东西。
var chats = [String]()
var messages = [String]()
var deviceID = "asdadasdas"
override func viewDidLoad() {
super.viewDidLoad()
let databaseRef = FIRDatabase.database().reference(fromURL: "https://MYURL.firebaseio.com/")
databaseRef.observeSingleEvent(of: FIRDataEventType.value, with: { (snapshot) in
//If a string is in the child name it adds the childname to an array and pulls a sub-child and adds it to another array
for rest in snapshot.children.allObjects as! [FIRDataSnapshot] {
let stringg = rest.key as String
if stringg.range(of:self.deviceID!) != nil {
self.chats.append(stringg)
let messagesQuery = databaseRef.child(stringg).queryLimited(toLast: 1)
messagesQuery.observe(.childAdded) { (snapshot: FIRDataSnapshot!) in
if let data = snapshot.value as? [String : String] {
self.messages.append(data["text"]! as String)
}
}
}
}
})
print(messages)
print(chats)
}
}