我在_geoloc字段中有一个数组。这些索引中的每一个都有纬度和经度坐标。因此,使用SWIFT,我希望只能获取索引0处的经纬度坐标,并将它们分别传递给字符串。我已经研究了好几天,被困住了。我试图创建一个新的字符串数组或一个AnyObject数组,但我只是卡住了在索引0处检索所需的数据,并且仅将这2个经/纬度坐标传递给字符串值。我有几个失败的代码片段可以发布。
以下是我尝试执行的操作的摘要:(我真的是Firebase的新手,所以代码有点难看,因为我只是想弄清楚这一点)
Firestore.firestore().collection("users").document("626").getDocument { (document, error) in
if let document = document {
// let geo_array = document["_geoloc"]
var yourArray = [String]()
// let geo_location = [geo_array] as [AnyObject]
let array: [Any] = document["_geoloc"] as! [Any]
let tmpArray = array.map({ return String(describing: $0)})
let string = tmpArray.joined(separator: ",")
yourArray.append(string)
print(yourArray[0])
答案 0 :(得分:1)
您只需要将对象从Any转换为字典数组并获取第一个属性:
Firestore.firestore().collection("users").document("626").getDocument { document, error in
if let document = document {
var yourArray: [String] = []
if let location = (document["_geoloc"] as? [[String:Double]])?.first,
let latitude = location["lat"],
let longitude = location["lat"] {
let coordinate2d = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
yourArray.append("Latitude: \(location.latitude), Longitude: \(location.Longitude)")
}
}
}