我有一段将数据保存到Firebase的工作代码:
let locRef = locationRef.childByAutoId()
let locItem = [
senderId : [
"location": getLocationID()
]
]
locRef.setValue(locItem)
我想检索用户的(由senderID标识的)“位置”,所以我尝试了这段代码:
locationRef.child("location").child(senderId).observeSingleEventOfType(.Value, withBlock: { (snapshot) in
self.locationId = snapshot.value!["location"] as! String
}) { (error) in
print(error.localizedDescription)
}
但是,当代码运行时,我的应用程序正在崩溃,并且没有错误。我想我的错误可能是
.child("location")
一定是别的什么东西,但我不知道是什么。数据库结构(JSON):
{
"locations" : {
"-KLEdoj2eiF7EW9m0815" : {
"W6vSOHZLTwNM33JYqkKHvaIVRF13" : {
"location" : "Seattle, WA"
}
},
"-KLLfcOvYHwIufBALM0-" : {
"W6vSOHZLTwNM33JYqkKHvaIVRF13" : {
"location" : "London, United Kingdom"
}
},
任何帮助都将不胜感激谢谢!
最佳答案
你应该把你的位置称为
FIRDatabase.database().reference().child("locations").child(locationId).child(senderId).observeSingleEventOfType(.Value, withBlock: { (snapshot) in
self.location = snapshot.value!["location"] as! String
}
例如:
如果您有
locationId = "-KLEdoj2eiF7EW9m0815"
和senderId = "W6vSOHZLTwNM33JYqkKHvaIVRF13"
,则上述调用将把self.location
设置为"Seattle, WA"
关于swift - 尝试从Firebase检索数据时遇到问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38086386/