2016-11-16 52 views
5

現在,以下是我在Firebase數據庫控制檯中的數據庫層次結構。Android Firebase數據庫:沒有事件偵聽器的單個數據抓取

enter image description here

我使用下面的代碼將數據輸入到數據庫火力點。

public void createRecordInDB(PlaceListItem placeListItem) 
    { 
     mDB= FirebaseDatabase.getInstance().getReference(); 
     mListItemRef = mDB.child("Places"); 

     for(int i = 0; i < placeListItem.getResults().size(); i++) { 
      // Create new List Item at /listItem 
      String placeId = placeListItem.getResults().get(i).getPlaceId().toString(); 
      String key = placeId; 
      PlaceDBModel placeDBModel = new PlaceDBModel(); 
      placeDBModel.setPlaceName(placeListItem.getResults().get(i).getName()); 
      placeDBModel.setVicinity(placeListItem.getResults().get(i).getVicinity()); 
      placeDBModel.setLattitude(placeListItem.getResults().get(i).getGeometry().getLocation().getLat().toString()); 
      placeDBModel.setLongitude(placeListItem.getResults().get(i).getGeometry().getLocation().getLng().toString()); 
      placeDBModel.setPlaceID(placeId); 
      if(isItWorking(key)) 
       placeDBModel.setWorkingOrNot("Working"); 
      else 
       placeDBModel.setWorkingOrNot("Not Working"); 
      HashMap<String, Object> result = new HashMap<>(); 
      result.put(key, placeDBModel); 
      mListItemRef.updateChildren(result); 

     } 

看到我第一次從web服務加載數據時,我只是將所有數據輸入到firebase數據庫。現在在我的應用程序的一個屏幕(點擊按鈕)中,我可以更新特定節點中的一些數據。現在,當我再次回到上一個屏幕並從Web API加載數據時,它會將所有數據覆蓋到Firebase數據庫中。我需要保持更改的值,因爲它是在點擊按鈕時。因此,我想要讀取節點中的特定數據,如果它正在工作,則將值設置爲「正在工作」或「未正常工作」。我希望這會澄清我的問題。

+0

請分享您的整個活動的代碼。 –

+0

你已經在你的問題中包含了JSON樹的圖片。請將實際的JSON替換爲文本,您可以通過單擊Firebase數據庫控制檯中的導出JSON鏈接輕鬆獲取該文本。將JSON作爲文本可以搜索,使我們能夠輕鬆使用它來測試您的實際數據,並將其用於我們的答案中,並且通常只是一件好事。 –

回答

相關問題