问题标签 [geofire]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2884 浏览

javascript - 使用 Firebase-GeoFire 获取用户附近的餐馆列表

我有一个餐厅列表,每个餐厅都有一个固定位置,存储在 GeoFire 中。现在我想在用户位置的固定半径内显示餐厅。我如何使用 GeoFire 来实现这一点。此处的文档https://github.com/firebase/geofire-js/blob/master/docs/reference.md#geofiresetkeyorlocations-location主要建议使用 key_entered、key_exited 等处理 geofire“键”移动的解决方案.但我无法弄清楚如何访问附近的钥匙。

我的控制器代码如下所示:

密钥打印在控制台上,但不会推送到 filtersRest 数组。

我希望在以下链接中实现“示例用法”: https ://github.com/firebase/geofire-java#example-usage

有类似的问题,但大多数都在 ios/swift 中,答案不是很丰富。我正在使用 GeoFire-JavaScript。任何帮助,将不胜感激。

0 投票
1 回答
506 浏览

ios - 如何在 GeoFire 中正确使用存储的搜索半径?

我正在使用 GeoFire 搜索给定的半径,用户可以在我的应用程序中设置并存储在 FireBase 上。当页面加载时,在运行 GeoFire 查询之前,我从 Firebase 获取半径。但是,当我运行下面的代码时,我收到以下错误:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“精度必须小于 23!”

通过玩一些策略性放置的打印语句,看起来 searchRadius 在 GeoFire 查询运行时返回为 0,这让我怀疑异步加载正在发挥作用。

我的问题是,由于我的 searchRadius 为 0,我是否会收到此错误,如果是这样,我如何确保获取我的用户搜索半径的 FireBase 块在我的 GeoFire 查询之前运行?

0 投票
1 回答
456 浏览

swift - 如何在我的 firebase 数据库中构建我的 Geofire 帖子

我在所有其他帖子中注意到,任何带有子节点的节点/键都以引号保存在数据库中,而我的则没有。

其他/我认为应该是

在遇到与“.indexOn”类似的错误之前,我没有想到任何事情。我尝试添加“.indexOn”,但我收到了错误,即没有键可以有符号.(以及一些其他不允许的字符),所以我把它放在没有.类似的地方:

Locations{ (specific id){ g: "345jh3i5jh" l{ 0: 37 1: -120 } indexOn: "g" user: "0987435098723098Gjhf90" } }

所以它似乎可以工作,因为observeEventType有时会返回正确的结果,但它仍然给我一个错误,我需要将“.indexOn”放入数据库中。我该怎么做呢?


任何帮助和明确的示例将不胜感激,因为所有问题可能比我解决的问题更多。快速执行此操作,感谢您的阅读!

0 投票
2 回答
2146 浏览

android - 使用 GeoFire 在 android 中填充 Firebase Recycler 视图

我想填充我的回收站视图,以便我可以看到附近的人/地点。我正在使用 GeoFire 来查询我的数据库,它看起来像这样。

我正在使用这个 Firebase RecyclerView

与这些聊天持有者类和聊天对象类

目前,FirebaseUI 库中提供的这个适配器填充了 recyclerview,因此,只使用一个引用,并且所有子事件都显示在视图中,现在,我想填充我的 recyclerView,这样当一个键输入时,它就会填充我的 recyclerview根据我的 key = 我的参考,这就是我的 firebase 数据库看起来我的 firebase 数据库的方式

0 投票
1 回答
3072 浏览

ios - 按距离排序 Geofire 结果

我一直在尝试使用iOS 版 Geofire,但似乎找不到任何方法可以在圆形查询中返回与搜索位置的距离。GFQueryResultBlock 只返回键和位置。我是否正确假设我必须自己计算距离?

假设我正在使用 Firebase 制作一个附近的餐厅应用程序,并且想要显示离用户最近的 20 家餐厅,按它们的距离排序。我可以创建一个圆形查询,然后通过循环增加搜索半径,直到找到 20 家餐厅。然后计算每个距离并在将它们显示给用户之前对其进行排序。这是一种合理的方法吗,考虑到应用程序中正在进行大量工作来构建数据(计算距离和排序)?

我注意到 javascript Geofire 查询返回距离 center,但我猜 iOS 和 android 版本与此不同。

0 投票
1 回答
410 浏览

firebase - Geofire 和使用 firebase 和 Angularfire 进行查询

在我的 ionic2 应用程序中,我需要显示一个列表,其中实时更新最近的地点(酒吧、餐厅等)信息。正如我在 GeoFire 文档上阅读的那样,我应该在树中单独保存位置和地点详细信息数据。所以我的firebase中有以下内容:

当用户加载页面时,我得到了他的位置,并且使用 GeoFire,我能够得到他所在区域附近的每个 placeID。很酷但现在变得非常棘手......现在我得到了所有地点 ID,我想显示这些地点的所有详细信息并订阅每个选定地点 ID 的“信息”子项中发生的每个更新

我试过了:

它起作用了,我得到所选placesID的所有地点详细信息,但是一旦更新了地点(例如:子“信息”已更新),就会将新密钥推送到数组中,并且我得到重复的信息..

还有比这更好的解决方案吗?

0 投票
1 回答
1888 浏览

android - GeoFire 和 Firebase 用于定位最近的用户

在通过 firebase Git 工作后,我遇到了一些问题,这是我的数据库: 数据库

一开始我定义

编辑:经过几次修复,我发现了这个问题......我试图找到某个用户中的所有用户,经过一些修复它确实找到了每个人,但它也发现了自己......我怎样才能避免添加我的自己的用户(或从找到的用户中删除我自己的用户密钥......)这是代码(希望能更好地解释这个问题,因为英语不是我的母语)。 runnersNearby 是此半径上的用户...

0 投票
0 回答
110 浏览

angularjs - Firebase + GeoFire:具有不同半径的 Goequery

我想知道是否可以这样做,如果可以,怎么可能这样做:
使用 Geofire 和 AngularJs,我想用

A = lat,lng + radius 显示 A 区域中的所有元素: 25km
使用地理查询很容易做到这一点,但如果
B = lat,lng + radius:8km
C = lat,lng + radius:20km
D = lat,lng + radius:5km
如您所见,C 区域位于 A 区域下图:
在此处输入图像描述

是否可以检索像 C 这样与 Geoquery 交叉和共享区域的所有元素?
你能告诉我如何执行这个吗?

谢谢

0 投票
1 回答
335 浏览

ios - Firebase 数据库结构和查询格式选项

基本上,我的应用有基于位置的帖子,可以被赞成/反对。我需要构建一个查询,该查询返回位于指定区域的前 15 个投票帖子,这些帖子是在过去 24 小时内发布的。来自 sql 背景,我发现使用 JSON 格式和 firebase 内置的按顺序查询和过滤选项很难做到这一点。我意识到我很可能需要进行大量的客户端过滤,所以我想问一下 JSON 结构和查询格式将是什么来最小化客户端过滤。到目前为止,这是我的 JSON 格式的样子:

我尝试使用 Geofire,但不幸的是,它似乎只能按区域查询,并且由于我想按区域和发布时间(除其他外)进行查询,因此使用 Geofire 无法很好地扩展。

0 投票
0 回答
92 浏览

java - 在 FireBase 树中设置 GeoFire 值

数据库截图

这是我的数据库。每当我使用 GeoFire 设置位置时,我都会使用:

但我还没有弄清楚如何在父母的带领下得到它。我想将值存储在孩子下方的“markerLocation”中。

我尝试将 setLocation() 中的键更改为完全“markerLocation”而不是“Marker”,但它仍然会生成自己的树。对于树,我有:

而且我试图在 setValue 中挤入 setLocation 但这不起作用。

如何设置它以使其位于父/子之下?