如何在我的android应用程序中使用Firebase实时数据库来跟踪某个人的位置?

问题描述:

我正在制作一个应用程序,让我可以查看具有相同应用程序的另一个人的位置,并且可以实时显示他的动作。我将使用Firebase实时数据库,但我不知道即可开始使用。因此,该应用会将其位置发送到Firebase数据库,而使用同一应用的其他用户可以跟踪此用户并在Google地图中找到他的位置。请为此提供任何链接或显示开始步骤。如何在我的android应用程序中使用Firebase实时数据库来跟踪某个人的位置?

+0

你见过[GeoFire](https://github.com/firebase/geofire-java)吗? –

您必须首先通过Google Play服务实现位置API以获取用户的位置。请注意,剩下的工作取决于您如何构建Firebase。该位置可能只是用户对象中的纬度变量,因此您可能只是更新用户对象中的子值。不知道你的结构,我只能给出一个如何做到这一点的总体思路。假设您有某个位置对象与用户关联。然后,您可以设置具有相关位置变量的排序位置类;是这样的:

public class MyLocation { 
    public double lat; 
    public double lon; 
    public String nameOfPlace; 

    public MyLocation(double lat, double lon, String name){ 
     this.lat = lat; 
     this.lon = lon; 
     nameofPlace = name; 
    } 
} 

然后只要你喜欢,你可以访问该用户的位置,为此,你可以使用一个SyncAdapterJobSchedulerGCMTaskService等,然后假设你已经设置了火力地堡,创建一个新的对象,并发送它:

MyLocation myLocation = new MyLocation(latFromApi, lonFromApi, name); 

如何使你的火力点的结构决定了你是否推对象或使用setValue等,但您应及时更新用户的类的位置,或者如果你有一个平坦的结构,有用户可以参考的位置,只需更新位置即可如果您首次推送位置,请确保用户对位置的引用也进行了更新。

之后,您可以设置ChildEventListener,或更可能设置为ValueEventLister来侦听对位置的更改。