我是swift和firebase的新手,我在从firebase数据库中检索数组元素时遇到了困难
我可以检索其他元素:
数据库参考
class ViewController: UIViewController {
var ref: FIRDatabaseReference?
let fileName : String = "jsonFile"
方法
func parseFirebaseResponse() {
ref?.child("Vandreture").child(fileName).observe(.value, with:
{ (snapshot) in
let dict = snapshot.value as? [String: AnyObject]
let navn = dict!["navn"] as? String
print(navn as Any)
let type = dict!["type"] as? String
print(type as Any)
let Længde = dict!["length"] as? String
print(Længde as Any)
let link = dict!["link"] as? String
print(link as Any)
})
}
但是我搜索了一种检索经度/纬度对的方法, 第一对应该是 北纬109.987 经度102.987 - 但到目前为止没有运气 - 真的很感激帮助:)
答案 0 :(得分:1)
我认为您应该将数据库重组为以下内容:
Vandreture {
jsonFile {
length: "16.2"
link: "www.second.com"
navn: "Kagerup rundt"
positions {
-KqXukxnw3mL38oPeI4y {
x: "102.987"
y: "109.987"
}
-KqXukxnw3mL38oPeI5- {
x: "108.234"
y: "99.098"
}
}
}
}
然后更容易获得坐标!
答案 1 :(得分:0)
将你的“位置”作为字典(又名[String:AnyObject])。
然后得到纬度和经度数组。然后将每个元素从纬度和经度映射到元组或类似的东西。
guard let position = dict!["position"] as? [String: AnyObject],
let latitudeArray = position["latitude"] as? [String],
let longitudeArray = position["longitude"] as? [String] else { return }
print(latitudeArray)
print(longitudeArray)
答案 2 :(得分:0)
感谢Victor Apeland - 现在我改变了数据库的结构。我无法完全按照你的建议去做! 我将lon / lat连接成一个字符串(不是最好的 - 我知道 - 我是swift的新手,而firebase没有详细记录) 从我的long / lat中检索单个元素,我使用了这个方法,我对第一次阅读特别感兴趣,所以我创建了一个列表,填充它,并获得了第一个元素,将其解析为一个新方法
func responsePosition() {
var positions = [String]()
ref?.child("Vandreture").child(fileName).child("position").observe(.value, with: { (snapshot) in
for snap in snapshot.children {
let userSnap = snap as! FIRDataSnapshot
let uid = userSnap.key //the uid of each user
let userDict = userSnap.value as! String
positions.append(userDict)
}
let pos : String = positions[0]
self.formatPositions(pos : pos)
})
}
在我的火力基础中,lon-lat被空格分割,所以我将字符串分割并转换为双倍。
func formatPositions(pos : String) {
let lotLangDivided = pos.components(separatedBy: " ")
let longitude = Double(lotLangDivided[0])
let latitude = Double(lotLangDivided[1])
}
现在我得到了我想要的结果 - 感谢Victor和Khuong的帮助:)