私は、Uberのように地図を作成して位置を追跡する必要のある単純なアンドロイドアプリを開発しています...私はユーザーの場所を格納するデータベースとしてfirebaseを使用しています。 場所を保存するには私のMainActivityが呼び出されたときに呼び出されるサービスを作成しました 私が直面している問題は、場所がデータベース内で一度しか更新されないということです。つまり、場所が変更されたときにデータベースで更新されません更新するために新しい場所のアプリケーションを再起動する必要があります。私の主な活動のfirebaseデータベースのアンドロイドアプリを使用して位置情報を更新する
ここで私はまた私がのonCreate(でサービスと呼ばれている
public void onLocationChanged(Location location) {
Log.d("lam", "onLocationChanged:lam "+location.getLatitude()); //The log gets updated but not the values in database
try {
urlCurrenUser.child("Lattitude").setValue(location.getLattitude());
urlCurrenUser.child("Longitude").setValue(location.getLongitude());
}catch (Exception e){}
をしようとした私の場所のサービス
public void onLocationChanged(Location location) {
Log.d("lam", "onLocationChanged:lam "+location.getLatitude()); //The log gets updated but not the values in database
Map<String,Object> taskMap=new HashMap<>();
taskMap.put("Latitude",location.getLatitude());
taskMap.put("Longitude",location.getLongitude());
try{
urlCurrenUser.updateChildren(taskMap);//urlCurrentUser is the path to database
}catch(Exception e){}
}
でonLocationChangedメソッドのコードがあります)
編集 私のurlCurrentUser(データベースへの参照)に問題があると思いますデータベース内のEDが、場所の変更とは、再びコードを更新するために呼び出されたときに新しいが、それは例外すなわち
java.lang.NullPointerExceptionが与え座標:仮想メソッド 「com.firebase.clientを起動しようとします。 nullオブジェクト参照 上Firebase com.firebase.client.Firebase.child(java.lang.Stringで)」
私はちょうどこの を解決する方法を理解することはできませんがここに私のデータベース構造のスナップショットです enter image description here
Databaseリファレンスコード
urlCurrenUser = new Firebase(URL).child("users").child(authData.getUid());