我有一个Firebase实时数据库,其中有一组与谷歌地图上的位置相关的项目。所以Firebase中的每个孩子都有这样的数据结构。
-item
latitude:"5511231165654"
longitude:"516891812013216"
postalcode: "10013"
cityname: "New York"
在我的应用程序中,数据库中的每个项目,以标记的形式添加到Google地图上的相关位置。现在我认为将所有项目发送给所有用户不是一个好主意。仅向用户发送与他们相关的这些项目会更有效。这些项目是与用户位于同一区域中的一个,在这种情况下,相同的区域意味着相同的邮政编码。
为了处理这个问题,我构建了这个查询
Query sortedByLocation = myRef.orderByChild("postalcode").equalTo(currentpostalcode);
sortedByLocation.addListenerForSingleValueEvent(
new ValueEventListener() {
.
. do something
.
}
我从Geocoder得到了当前的邮政编码以及城市名称。现在的问题是,有时Geocoder无法解码邮政编码并为其返回null,但它总是返回城市名称。所以我将查询更改为
Query sortedByLocation = myRef.orderByChild("cityname").equalTo(currentcity);
那么,我如何组合这两个查询呢?我想这样做:
is postalcode == null than check for cityname
另一个问题是,可以在需要时手动检索数据吗?
想象一下,用户启动应用程序,应用程序现在获取与用户在同一区域的所有项目,但现在用户离开该区域并进入其他区域。
如何触发检索此新区域的新数据而无需重新启动应用程序?
Firebase查询只能包含单个排序/筛选条件。
有时,您可以将多个值组合到单个属性中,以获得所需的行为。有关这方面的示例,请参阅我在此处的答案:基于firebase中的多个 where 子句进行查询
但总的来说,使用GeoFire听起来可能会更好,它使用GeoHashes(一种将经度和纬度组合成单个属性的方法)来允许根据项目到点的距离来过滤项目。请注意,目前,GeoFire for Java的更新版本仍在开发中。
我试图创建一个简单的程序,从用户的名字,手机号码和电子邮件地址,然后把数据在Firebase实时数据库。 有3个输入框和一个按钮,按一下就可以完成上面的操作。代码如下: 我这样设置了消防基地:
问题内容: 我有这样一张table: 如果创建了新记录,并且该记录在同一天被更改了几次,则输出将成为更改后的记录的第一个和最后一个记录;如果同一天对现有记录进行了几次更改,则输出应在第一个更改和当前更改之前改变 例如:如果输入日期为2018年6月1日,则输出应如下所示; 如果输入日期为2018年6月2日,则输出应如下所示; 如果输入日期为2018年6月3日,则输出应为以下内容; 任何帮助深表感谢。
firebase数据库最近的更新似乎有一些变化。我的项目在firebase\u数据库:^7.0.0版本下运行良好,但在firebase数据库的更新版本中,我无法更新项目代码。 以下是v7的工作版本 firebase\u数据库^9.0.12上的同一代码出现错误。我收到的错误在`(DataSnapShot snap)async{…}上错误是 无法将参数类型“Future Function(DataSn
问题内容: 我正在法国学习,所以很难找到法语教程来解决我的问题。因此,我不得不问我的问题,希望有一个令人满意的解决方案。 我的问题是我在firebase上读取数据时遇到了麻烦,并且花了三天时间。 我有这样的结构: 我已经开始编写一些代码,可以恢复密钥,但是无法恢复这些值“ nom”,“ argent”等。 问题答案: John的替代方法是使用来获取每个属性:
我正在两个标记之间画一条路线,我想保存那条路线。为此,我将包含lat和lng的ArrayList保存在Firebase数据库中。但我在取回航路点时遇到了问题。我是这样插入的: 在检索数据时,我尝试执行以下操作:
我如何从所有userid都未知的医院中检索所有的hospitalNames。