2017-03-03 47 views
0

使用Android應用程序更新位置數據我正在開發一個簡單的Android應用程序中,我需要創建就像尤伯杯地圖和跟蹤定位...我使用火力爲我的數據庫將存儲用戶的位置。 要存儲我創建的時候我的MainActivity調用時調用的服務 位置我現在面臨的問題是,該位置在數據庫即當位置發生變化,也不會得到在數據庫中更新得到更新一次我必須重新啓動應用程序的新位置得到更新。在火力數據庫

這裏的onLocationChanged方法的代碼在我的位置服務

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){} 
       } 

我也試過

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){} 

我呼籲在OnCreate()我的主要活動的服務

編輯 我認爲這是我的urlCurrentUser(參考數據庫)中的問題時,應用程序開始於第一次嘗試的位置變得updat編輯在數據庫中,但是當位置變化,並再次代碼調用來更新新的座標它提供了一個例外,即

顯示java.lang.NullPointerException:試圖調用虛擬方法 「com.firebase.client。火力地堡 com.firebase.client.Firebase.child(java.lang.String中)」空對象 參考

我只是不明白怎麼解決這個 這裏是我的數據庫結構 的快照enter image description here

數據庫參考代碼

urlCurrenUser = new Firebase(URL).child("users").child(authData.getUid()); 

回答

0

請你與以前版本的API工作的最新docs

1 - 確保您已配置從firebase項目控制檯下載的正確的Google服務JSON文件 。

2 - 默認情況下,讀取和寫入訪問到你的數據庫限制,僅 身份驗證的用戶可以讀取或寫入數據。爲了不設置Authentication上手 ,您可以configure your rules,供公衆查閱。這確實會讓你的數據庫開放到 任何人,即使是沒有使用你的應用程序的人,所以一定要在設置身份驗證時再次限制你的 數據庫。

3 - 請按照詳細記錄的article來編寫和讀取來自Firebase數據庫的 數據。