使用 GeoFire 按半径查询位置

2024-03-10

我知道这是一个基本问题,但我仍然遇到很多麻烦。

我有一个 Firebase 数据库存储社区事件。每个事件节点都有一个地理位置节点(使用 GeoFire 创建),称为活动地点(见下面的截图)。

使用 GeoFire(和 javascript),我将如何查询整个数据库并获取特定位置/半径内的所有事件?考虑到数据的存储方式,这可能吗?或者我是否需要将所有位置节点移动到一个公共节点(eventPlaces?)并查询该单个父节点?

请注意,我不是在寻求实时数据。这些位置是之前存储的并且不会经常更改。

提前致谢…


就目前情况而言geofiresort 用作进行地理查询的索引,并提供您想要的文档的键(它将存储在单独的“集合”中)。

你应该使用geofire和一个单独的“集合”(称之为活动场所)

var firebaseRef = firebase.database().ref('eventPlaces');
var geoFire = new GeoFire(firebaseRef);

现在您可以使用它作为您的索引events,并且可以像这样向其中添加项目。

geoFire.set('-K_Pp-3RBJ58VkHGsL5P', [40.607765, -73.758949]);

您的 Firebase RTDB 现在将如下所示:

{
   'events': {
        '-K_Pp-3RBJ58VkHGsL5P': {
            // All your data here
        }
    },
   'eventPlaces': {
        '-K_Pp-3RBJ58VkHGsL5P': {
            'g': 'dr5x186m7u',
            'l': [40.607765, -73.758949]
        }
    }
}

所以最后当你查询你的geoFire:

geoFire.query({
  center: [40.607765, -73.758949],
  radius: 10
}).on('key_entered', (key, location, distance) => {
  console.log(key + ' entered query at ' + location + ' (' + distance + ' km from center)');
});

您最终将返回文档的密钥,您可以为此单个文档执行正常的 Firebase 查询。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 GeoFire 按半径查询位置 的相关文章

  • 为什么 Service Worker 无法在 Chrome 中工作?

    我是网络开发新手 如果我不清楚我的问题 很抱歉 我正在尝试制作 PWA 目前正在测试我的清单和 Service Worker 是否正常工作 在我的项目中 我有一个 index html 文件 它调用文件 app js 我尝试在其中注册名为
  • 删除时忽略限制(猫鼬)

    我需要删除集合中最早的几个文档 所以我写了这样的内容 Model remove u abc sort id 1 limit 10 exec function err count count gives the total documents
  • 快速查看缓存表现得很有趣

    我在express Jade 中的视图缓存中遇到了一些有趣的事情 控制器通过 Mongoose 从 MongoDB 获取文章并将其交给 res render 函数 然而 运行几分钟后 Express 开始为该路由的所有请求提供相同的编译模板
  • 如何在node.js的当前范围内动态创建变量?

    我正在尝试动态创建指向对象的node js 变量 我知道我可以使用 eval 在范围内动态创建变量 var vars a b for var n 0 n
  • 运行 webpack 抛出“回调已被调用”错误

    我刚刚开始学习 webpack 来管理项目中的依赖项 我正在尝试使用它为我的打字稿和 JavaScript 文件构建捆绑包 对于打字稿文件 我正在使用ts loader处理它的插件 对于CSS 我使用的是mini css extract a
  • FRebase Firestore onCreate 云函数事件参数未定义

    我尝试按照 Firebase 的文档和其他 SO 帖子访问我已成功部署的云函数的参数值 不幸的是我仍然收到了 类型错误 无法读取未定义的属性 id 我已经记录了 event params 并且它输出为未定义 所以我理解这个问题 但不确定从语
  • NodeJS MySQL - 如何知道连接是否释放

    我正在开发 NodeJS MySQL Web API 我在用mysql https www npmjs com package mysqlnpm 模块 我想知道连接是否已释放 是否有任何函数或变量 喜欢 if connection isRe
  • 仅允许 Firebase 实时数据库中的唯一值[重复]

    这个问题在这里已经有答案了 这是我的数据结构 root mydata KqI0uf 1 bD3oLlx2h Joe Kdk0bf 1 bx0oLlb9a Mike Kox8gf 1 b36onlT3h Eve 如何编写规则以仅允许 Fire
  • 使用 NPM 重命名文件

    有没有办法重命名 npm 脚本中的单个文件 我想准备要分发的文件 但我需要将构建的文件命名为与源代码中不同的名称 我尝试过 orn 但这似乎只能在命令行上工作 不能作为 npm 脚本工作 我特别希望添加跨平台依赖项来完成我的项目 而不是编写
  • 使用自定义令牌进行 Firebase 身份验证

    我有一个 firebase 项目 我试图从我的 Rails 服务器进行身份验证 按照文档上的说明使用 ruby jwt 库创建自定义令牌 但我不断收到相同的错误 auth invalid custom token 自定义令牌格式不正确 请检
  • req.protocol 永远不会在 nginx 代理后面提供 https

    我正在尝试识别我的 Express 应用程序是否通过https协议 Using nginx处理认证和加密 在同一台机器上 并转发请求 req protocol评估为http即使 https 正在使用并且工作正常 我已经尝试了以下两种方法 单
  • 如何快速将云Firestore中的数据保存到变量中?

    我想将文档中的特定字段保存到变量中 到目前为止我的代码 func getDocument path String field String nil gt some Any var returnVar Any DEFAULT VAL var
  • Firebase数据库在批准后保存数据

    我在 iOS 应用程序上使用 firebase 数据库 我正在快速写作 我正在使用 发送 按钮在我的 firebaseDatabase 上写入数据 例如文本字段和标签值 有什么方法可以接受或拒绝我的数据库中的数据吗 我的意思是 如果用户向文
  • JS 无法查询 MySQL 数据库。错误:connection.query 不是函数

    尝试查询我的 mySQL 数据库 但我不能 因为我得到了TypeError connection query is not a function错误 有谁知道为什么吗 我不知道为什么会发生这种情况 数据库 js const fs requi
  • aws-mock-sdk s3.getObject 不起作用

    这是我的 lambda 处理程序 我在其中使用各种 AWS 服务 exports handler function event context var body event var isValidBody validate doValida
  • 将 WordPress 用户导入 Firebase 身份验证

    我正在将我的 Wordpress 网站迁移到 Firebase 我已成功将我的 Wordpress 用户导出为下面的 JSON 格式 如中所述文档 https firebase google com docs cli auth 我相信 Wo
  • Node JS,延迟响应

    var http require http var s http createServer function req res res writeHead 200 Content Type text plain res write Hello
  • 测试期间的 Mocha beforeEach 和 afterEach

    我一直在尝试使用摩卡测试我的测试服务器 这是我使用的以下代码 与另一篇类似帖子中找到的代码几乎相同 beforeEach function done Setup console log test before function ws on
  • W/Firestore:[CustomClassMapper]:Android 类没有设置器/字段

    我试图使用 Recyclerview 从 Documents 类加载数据 但 logcat 上出现错误 W Firestore 21 1 1 CustomClassMapper No setter field for Document Na
  • 在 React 中渲染来自 Firebase 的数据

    请帮助我渲染从 Firebase 实时数据库检索的数据 我成功从 Firebase 中以数组形式检索数据 下一步是显示数据 问题就从这里开始了 我想要显示的数据应该存储在 模块 状态 首先 它被设置为一个空数组 然后检索数据 通过 Coum

随机推荐

  • 如何取消 NSBlockOperation

    我有一个很长的运行循环 我想在后台运行NSOperation 我想使用一个块 NSBlockOperation operation NSBlockOperation blockOperationWithBlock while not can
  • Swift 中处理窗口关闭事件

    如何使用swift处理窗口的关闭事件 例如询问 您确定要关闭表单吗 如果 是 则该表格将关闭 如果 否 该表格将不关闭 显示消息框对我来说不是问题 viewWillDisappear 也适用于最小化 但我只需要关闭事件 Thanks 就像上
  • 为什么 Laravel Redis::scan('*') 返回预期的键,但 Redis::keys('*') 没有返回?

    Problem 我使用 Python 代码向 redis 添加了一个值 当我尝试查询时使用 Laravel Redis get key name 它返回null Redis keys 返回使用 Laravel 但不使用 Python 创建的
  • limitTo 在 AngularJs 的 ng-repeat 中不起作用

    我正在为某些应用程序编写一些代码 我想限制聊天中的消息 this limitM 10 scope msgsCount contains the number of messages
  • 将复杂类型作为数据传递给 jquery ajax post

    我的数据模型类如下所示 DataContract public class Order DataMember public string Id get set DataMember public string AdditionalInstr
  • CF 标志的行为难以理解

    假设有一段代码 mov al 12 mov bl 4 sub al bl 在这种情况下 CF 0 标志 但在我看来它应该等于 1 因为减法运算是在加法运算上实现的 并且处理器不知道我们将其作为输入提供什么 无论是有符号还是无符号数字 它只是
  • 如何告诉窗体在关​​闭时不要释放特定控件?

    我想为我的子类表单对象编写一个函数 该函数必须关闭窗体并返回该窗体上的控件 以便我可以将其放在另一个窗体上 我无法阻止控件被处置 我认为使用 this Controls Remove someControl 从控件集合中删除它足以阻止它处置
  • Spring security中每个请求不同的csrf令牌

    我在用
  • 具有重载赋值的嵌套派生类型

    我有一个派生类型 wrapper 包含其他派生类型 over 对于后者 赋值运算符已被重载 由于派生类型的分配按默认组件方式发生 因此我希望分配两个实例wrapper将调用重载分配over在某一点 然而 使用下面的程序 情况似乎并非如此 仅
  • SelectById2 的指针标注

    我正在尝试将我在 VBA 中编写的一些代码移植到 Python 中以控制 Solidworks 特别是自动化草图编辑 我在 Python 中使用 Solidworks SelectById2 时遇到问题 在 VBA 中 以下代码工作正常 P
  • PHP continue 函数内

    这可能非常微不足道 但我一直无法弄清楚 这有效 function MyFunction Do stuff foreach x as y MyFunction if foo bar continue Do stuff echo output
  • Java 并发:Synchronized(this) => 和 this.wait() 和 this.notify()

    我非常感谢您帮助理解以下内容的 并发示例 http forums sun com thread jspa threadID 735386 http forums sun com thread jspa threadID 735386 pub
  • 计算时间跨度的最佳方法是什么

    在我的 C 程序中 我的要求是计算 foreach 循环内的业务逻辑执行的时间跨度 我必须存储时间跨度 我正在使用以下代码 for int i 0 i lt 100 i DateTime start DateTime Now Busines
  • Docker 信任初始化

    当对 tuf 上的公证人对 docker 内容信任的初始信任初始化时 我了解了 TUF 公证人和内容信任的工作原理 但我不清楚的是 最初的信任是如何建立的 我怎么知道第一次拉取没有受到损害并且初始 root json 是值得信赖的 例如 如
  • 使用foldr实现zip

    我目前正在阅读 Real World Haskell 的第 4 章 我正在努力理清思路根据foldr 实现foldl http book realworldhaskell org read functional programming ht
  • 寻找一种非“蛮力”算法来删除矩形集合的相交区域

    我有一个 n 大小的矩形集合 其中大部分彼此相交 我想删除相交并将相交的矩形减少为较小的非相交的矩形 我可以轻松地暴力破解解决方案 但我正在寻找一种有效的算法 这是一个可视化 原来的 处理 理想情况下 方法签名如下所示 public sta
  • 如何解决以下 SDK 版本报告了严重问题:com.google.android.gms:play-services-safetynet:17.0.0

    我在发布应用程序时收到此警告 play services safetynet 的开发商 com google android gms play services safetynet 已报告严重 版本 17 0 0 存在问题 在发布新版本之前
  • C# 中的 N 体模拟

    我正在尝试使用 Runge Kutta 4 或 Velocity Verlet 集成算法在 C 中实现 N 体模拟 在我转向更多数量的粒子之前 我想通过模拟地球绕太阳的轨道来测试模拟 但是 由于某种原因 我得到的不是椭圆轨道 而是一个奇怪的
  • 从 C# NUnit 在多个浏览器中依次运行 Selenium 测试

    我正在寻找推荐 最好的方法来使 Selenium 测试在多个浏览器中相继执行 我正在测试的网站不大 所以我还不需要并行解决方案 我有常用的测试设置方法 SetUp TearDown and Test 当然 SetUp 会实例化一个新的ISe
  • 使用 GeoFire 按半径查询位置

    我知道这是一个基本问题 但我仍然遇到很多麻烦 我有一个 Firebase 数据库存储社区事件 每个事件节点都有一个地理位置节点 使用 GeoFire 创建 称为活动地点 见下面的截图 使用 GeoFire 和 javascript 我将如何