繁体   English   中英

如何在Android中使用REST API从Firebase数据库检索数据?

[英]How to retrieve the data from Firebase database using REST APIs in android?

第一次使用fire base时,当尝试使用fire base rest api检索数据时,我得到这样的响应,

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

它包含多个具有不同ID的json对象而没有jsonarray.i我想将此数据存储在对象中。

如果仅由于键而在解析时遇到问题,则可以使用迭代器提取键并对其进行解析

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

            }
        });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM