swift - 在 Swift 中从 Radius 中的 GeoFire 检索 key

标签 swift firebase geolocation firebase-realtime-database geofire

我有以下 Firebase 数据库 JSON 数据结构:

{
  "Post List" : {
    "-KUlvg8mCEGfY5ZSKCou" : {
      "addedByUser" : "7llQbPdy2NV7aO337h7ap0qLOhC3",
      "content" : "Post1",
      "cost" : "$450",
      "duration" : "Daily",
      "latitude" : "25.0879721592719",
      "longitude" : "55.1487715855458",
      "number" : "01234567890",
      "timestamp" : "Posted on: Sun 23 Oct"
    }
  },
  "Post Locations" : {
    "-KUlvg8mCEGfY5ZSKCou" : {
      ".priority" : "thrnwznh58",
      "g" : "thrnwznh58",
      "l" : [ 25.0879721592719, 55.1487715855458 ]
    }
  },
  "User Locations" : {
    "7llQbPdy2NV7aO337h7ap0qLOhC3" : {
      ".priority" : "thrnwypqu9",
      "g" : "thrnwypqu9",
      "l" : [ 25.0829547120321, 55.1505315855337 ]
    }
  }
}

我希望有一个 GeoFire 查询,它将返回 1KM 半径内的所有键 [FIRAutoID's],例如在“用户位置”中,这些帖子是静态的,一旦设置了用户位置,它也将被固定。从半径查询结果中,我希望返回“-KUlvg8mCEGfY5ZSKCou”,这样我就可以引用帖子详细信息。希望这是有道理的。非常感谢,D。在网上找不到很多关于 GeoFire 的信息...看起来它仍处于初始阶段?...

最佳答案

想通了

func geoFireQuery() {

        let circleQuery = geoFire.query(at: self.myLocation, withRadius: 0.5)

        _ = circleQuery!.observe(.keyEntered, with: { (key: String?, location: CLLocation?) in

        print (key!)

    })

    circleQuery?.observeReady({
        print("All initial data has been loaded and events have been fired!")

    })

}

这似乎给了我我需要的东西。现在将这些键引用到 FBDB 的其他部分。 :)

关于swift - 在 Swift 中从 Radius 中的 GeoFire 检索 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40204662/

相关文章:

ios - 如何在 Swift 中设置初始 map 位置?

ios - Apple Watch 中模态转场的标签 “Cancel” 显示错误文本 - "abbrechen"

ios - 启用用户交互的淡入淡出 slider

swift - 在 swift 中的定时事件上切换图像

node.js - 尝试安装 firebase-tools 时出现错误 "shasum check failed"

swift - 如何使用 Swift 3 访问字典值?

arrays - firebase 子值作为数组中的字符串来填充选择器 swift 3

google-maps - 从坐标确定市区

没有三角函数的 SQL 距离查询

php - elasticsearch地理边界框不返回结果