2017-04-05 51 views
0

我正在製作一個應用程序,讓我可以查看具有相同應用程序的另一個人的位置,並且可以實時顯示他的動作。我將使用Firebase實時數據庫,但我不知道即可開始使用。因此,該應用會將其位置發送到Firebase數據庫,而使用同一應用的其他用戶可以跟蹤此用戶並在Google地圖中找到他的位置。請爲此提供任何鏈接或顯示開始步驟。如何在我的android應用程序中使用Firebase實時數據庫來跟蹤某個人的位置?

+0

你見過[GeoFire](https://github.com/firebase/geofire-java)嗎? –

回答

2

您必須首先通過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來偵聽對位置的更改。

相關問題