从Swift中的firebase函数中获取数据

时间:2017-07-23 04:21:27

标签: swift firebase

因此该函数会获取我的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)
}  

}

0 个答案:

没有答案