使用GeoFire将位置保存到特定子对象



我正在构建一个应用程序,用户可以使用GeoFire将位置上传到Firebase实时数据库。这些位置需要与上传它们的特定用户相关联,并伴随用户输入的其他信息。现在,代码如下:

let key = Auth.auth().currentUser!.uid
let subkey = Int.random(in: 1..<100000)

let object: [String: Any] = [
"Type": type.text!,
"Contact": contact.text!,
"Price": price.text!,
"Availability": availability.text!
]

geoFireRef.child("(key)").child("(subkey)").setValue(object)
let location = manager.location!
geoFire.setLocation(location, forKey: "(subkey)")

所有的数据都会被上传,包括位置。用户输入的所有数据一起进入用户ID的新子级。但是,位置数据进入用户ID之外的单独子级。新子级的名称与用于命名包含其他数据的子级的随机数相同。然而,同样,位置数据存储在用户ID之外。有没有一种方法可以用来将位置数据获取到用户ID内的同一个子项中?我尝试过geoFireRef.child("(key)").child("(subkey)").setLocation(location)之类的方法,但这种方法似乎并不存在。有什么方法我可以用吗?

数据库示例

基本上,我决定不使用setLocation方法,而是声明let latitude = location.latitudelet longitude = location.longitude,并将它们作为名为"的键的值上传;纬度;以及";经度";与其他字典条目一起添加到数据库。这符合我的目的。

最新更新