gpt4 book ai didi

android - Firebase 位置查询

转载 作者:太空狗 更新时间:2023-10-29 16:12:43 25 4
gpt4 key购买 nike

我正在使用 firebase 在 android 上设计一个基于位置的餐厅搜索应用程序。 firebase 上的餐厅类如下;

 restaurants
-key
address: "NYC"
city: "New York"
description: ""
id: 60000
latitude: 39.895107
longitude: 32.797819
name: "Pizza Store"

fragment 类

mainActivity.mDatabase.child("restaurants").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
System.out.println("There are " + snapshot.getChildrenCount() + " restaurans");
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
Restaurant post = postSnapshot.getValue(Restaurant.class);
mapmap2.put(post.getName(), postSnapshot.getKey());
restaurants.add(post);
}
adapter = new RestaurantCardViewAdapter(getActivity(), restaurants, MapListFragment.this);
mRecyclerView.setAdapter(adapter);
}

@Override
public void onCancelled(DatabaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});

现在,我可以列出所有餐厅。但我想查询用户位置。首先,我想列出用户位置附近的 20 家餐厅,当用户加载页面时,我想获得接下来的 20 家最近的餐厅。我在互联网上做了一些搜索。我找到了 GeoFire 库,但据我所知,它与旧版本的 firebase 一起使用。我如何使用这些条件进行查询?

最佳答案

Firebase 查询只能按单个属性进行过滤/排序。由于位置由经纬度组成,以您现在的格式,您无法根据位置进行查询。

幸运的是,有一个名为 GeoFire 的附加库.该库将经度和纬度组合到一个名为 geohash 的属性中.基于此属性,它可以按到给定位置的距离进行过滤。

我建议您查看 Geofire,看看它是否适合您的用例。

关于android - Firebase 位置查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40272146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com