2016-07-30 62 views
1

我第一次用火的基礎工作,當我試圖用火基地的REST API,我得到這樣的迴應檢索數據,如何在Android中使用REST API檢索Firebase數據庫中的數據?

{ 
    "-JQjT7REctmFfOAoGI6d" : { 
    "age" : "23", 
    "name" : "xxx", 
    "id" : "1" 
    }, 
    "-JQjT7RGTUdl1FTrjed6" : { 
    "age" : "34", 
    "name" : "xxx", 
    "id" : "1" 
    } 
} 

它含有不jsonarray.i想指出錯誤ID的多個JSON對象將這些數據存儲在對象中。

+0

您是否嘗試使用Firebase網站上提供的數據檢索示例代碼? – Talha

+0

我不想使用firebase lib,我只想要firebase rest apis – Rgv

+0

試試我的回答! –

回答

2
you can access data by mainly 3 ways 
1 addValueEventListener 
2 addChildEventListener 
3 addListenerForSingleValueEvent 

步驟1:創建模型類

public class UserModel { 

    String id; 
    String name; 
    String age; 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getAge() { 
     return age; 
    } 

    public void setAge(String age) { 
     this.age = age; 
    } 
} 

第2步:訪問數據在活動

Firebase firebaseUserDataReference = new Firebase("your firebase url").child("your root name/"); 

firebaseUserDataReference.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 

       Log.d("Call", String.valueOf(dataSnapshot.getValue())); 
       for (DataSnapshot postData : dataSnapshot.getChildren()) { 
        UserModel userModel= postData.getValue(UserModel.class); 
        yourArrayList.add(userModel); 
       }    
      } 

      @Override 
      public void onCancelled(FirebaseError firebaseError) { 

      } 
     }); 
+0

感謝您的重播,對不起,我不想使用firebase庫,我想firebase休息apis只有 – Rgv

+0

休息API是爲網絡!如果你想在android中使用firebase,你需要在gradle dependency中添加firebase lib! –

+0

你確定,有沒有其他的方式爲Android休息apis – Rgv

3

如果在解析只是因爲鍵然後有問題你可以使用迭代器並提取鍵並解析它們

if(jObj != null){ 
    Iterator<Object> keys = jObj.keys(); 
    while(keys.hasNext()){ 
     String key = String.valueOf(keys.next()); // this will be your JsonObject key 
     JSONObject childObj = jObj.getJSONObject(key); 
     if(childObj != null){ 
      //Parse the data inside your JSONObject 
     } 
    } 
} 
+0

感謝您的回覆,我會嘗試這個 – Rgv

+0

,它的工作感謝你,Vishal Patoliya說直接休息api不是由firebase.your sloution工作對我來說,最佳做法是什麼 – Rgv

+0

如果您使用的是Firebase,那麼建議您根據他們的文檔使用。所以最好根據他們的文檔添加他們的庫和解析。 – Kunu

相關問題