我有一段将数据保存到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/

10-10 00:28
查看更多