Swift 3中的Firebase数据库设置和数据处理
我对斯威夫特和Firebase还很陌生。我有这样的数据库:Swift 3中的Firebase数据库设置和数据处理,swift,dictionary,firebase,firebase-realtime-database,Swift,Dictionary,Firebase,Firebase Realtime Database,我对斯威夫特和Firebase还很陌生。我有这样的数据库: FIRDatabase.database().reference().child("Data").observe(.value, with: {(snapshot) in if let snapshot = snapshot.children.allObjects as? [FIRDataSnapshot] { for snap in snapshot{ if let dict = sna
FIRDatabase.database().reference().child("Data").observe(.value, with: {(snapshot) in
if let snapshot = snapshot.children.allObjects as? [FIRDataSnapshot] {
for snap in snapshot{
if let dict = snap.value as? [String: Any] {
if let address = dict["address"] as? String,let lat = dict["lat"] as? String, let long = dict["long"] as? String, let name = dict["name"] as? String {
let coordinate = coordinates[i]
let point = myAnnotation(coordinate: CLLocationCoordinate2D(latitude: lat , longitude: long ))
point.name = name
point.address = address
self.mapView.addAnnotation(point)
}
}
}
}
})
在应用程序中,我有多个注释,我需要将信息从数据库传递给它们。此时,我对将数据作为字典读取并将其传递给注释感到有点困惑。
这是我以前没有使用数据库和数组时的代码:
for i in 0...2
{
let coordinate = coordinates[i]
let point = myAnnotation(coordinate: CLLocationCoordinate2D(latitude: coordinate[0] , longitude: coordinate[1] ))
point.name = names[i]
point.address = addresses[i]
point.hours = hours[i]
point.phones = phones[i]
self.mapView.addAnnotation(point)
}
你不必为我编写代码,但我至少需要一些提示 我的firebase上有一个类似的数据库,我会这样做:
FIRDatabase.database().reference().child("Data").observe(.value, with: {(snapshot) in
if let snapshot = snapshot.children.allObjects as? [FIRDataSnapshot] {
for snap in snapshot{
if let dict = snap.value as? [String: Any] {
if let address = dict["address"] as? String,let lat = dict["lat"] as? String, let long = dict["long"] as? String, let name = dict["name"] as? String {
let coordinate = coordinates[i]
let point = myAnnotation(coordinate: CLLocationCoordinate2D(latitude: lat , longitude: long ))
point.name = name
point.address = address
self.mapView.addAnnotation(point)
}
}
}
}
})
在这里,我为数据节点的每个子节点循环,将该捕捉值作为字典传递,然后读取字典并键入其值以查看格式是否正确,然后分配它并将其附加到数组中。显示您正在尝试的firebase代码。是的,这正是我试图做的,您救了我一天。还有两个小错误1,纬度和长度必须为“双精度”,2,删除行“让坐标=坐标[i],非常感谢你的帮助。很高兴帮助:D是的,我只是使用字符串,这就是为什么我不知道你在哪里使用双精度。