【问题标题】:Saving a location to a specific child with GeoFire使用 GeoFire 将位置保存到特定的孩子
【发布时间】:2021-03-16 19:36:11
【问题描述】:

我正在构建一个应用程序,用户可以在其中使用 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) 之类的方法,但这种方法似乎不存在。有什么方法可以用吗?

example of the database

【问题讨论】:

    标签: swift xcode firebase geofire


    【解决方案1】:

    基本上,我决定不使用setLocation 方法,而是声明let latitude = location.latitudelet longitude = location.longitude 并将它们上传为名为“纬度”和“经度”的键的值与其他字典条目一起到数据库。这适用于我的目的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多