2017-08-22 35 views
0

我在一個android應用程序中使用firebase,我有一個房間列表的房子。我試圖找出如何作爲值使用房間的名稱爲孩子而不是0和1在firebase上設置類名列表

數據庫結構如下

Database Structure

+0

不要鏈接到截圖。附加信息可以以**文本**的形式給出。除此之外: – GhostCat

+1

不幸的是你的問題歸結爲「有人請幫助我這個」。但是我們並不認爲這個請求在本網站的範圍內是* questions *。請仔細閱讀[this](https://meta.stackoverflow.com/questions/284236/why-is-can-someone-help-me-not-an-actual-question)來理解爲什麼是這樣。然後考慮刪除這個問題,並在這個社區的範圍內提出一個新的,更精確的問題。或者,您可以返工並改進此問題。謝謝! – GhostCat

回答

0

您需要使用Map<StringRoomName,RoomDetailsClass> 這將顯示StringRoomName代替0和RoomDetailsClass作爲json對象的值。 其中StringRoomName = String

class Room{ 
    //your other members 
    Map<String,RoomDetailsClass> roomMap; 
    // gettes and setters or constructor for initialization 

    class RoomDetailsClass{ 

    //your room details 

    } 
    } 

,並上傳使用

if (isDataValidatied()) { 
       mDatabase.push().setValue(roomObject, new DatabaseReference.CompletionListener() { 
        @Override 
        public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) { 
         if (databaseError == null) { 
          makeToast("One entry created successfully"); 
          clearData(); 
         } else { 
          makeToast("data creation failed"); 
         } 
        } 
       }); 

      } else { 
       makeToast("Please check data entered"); 
      } 
+0

該地圖是我需要的,而不是把它們作爲列表 –

+0

Hi @ user3757775如果它對您有幫助,請接受它作爲答案。謝謝 –

0

在這種情況下,你需要改變你的數據庫結構。您需要使用而不是0,1等,房間的實際名稱,Kitchen,Living Room等。

要顯示它們,只需在rooms節點上放置一個listener並從dataSnapshot對象獲取密鑰。

希望它有幫助。