如何将firebase中的所有数据导入列表<myobject>

时间:2017-08-04 15:19:46

标签: android firebase firebase-realtime-database

我是Google Firebase的新手。在处理我的项目时,我有一个像这样的对象。

public class Travel implements Serializable {
     private String title;
     private String location;
     private int duration;
     private String description;
     private ArrayList<String> tags;
     private String dateAdded;
     private int rating;
     private int databaseID;
     //getters and setters are the only methods
}

,我的Firebase数据库在上传数据后如下所示

Database Structure

上传数据的代码是:

FirebaseHandler fb = new FirebaseHandler();
fb.addOnline(travel);   

现在我想制作一个ArrayList
使用firebase数据库中的数据。

我看了教程Here 但这是一个简单的2级层次结构。

我的问题是如何遍历 DataSanpshot 来创建ArrayList?

2 个答案:

答案 0 :(得分:0)

基于我们的DataSnapshot正在监听Firebase数据库中的数组,您可以这样迭代:

List<T> list = new ArrayList<>();
for (DataSnapshot item : dataSnapshot.getChildren()) {
    list.add(item.getValue(YourObject.class));
}

注意你可以解析&#34; DataSnapshot值到您的具体域类。

答案 1 :(得分:0)

创建字符串类型dataType的arrayList,如下所示:

Query citiesQuery = databaseRef.child("cities").startAt(input).orderByValue();
    citiesQuery.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            List<String> cities = new ArrayList<String>();
            for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
                cities.add(postSnapshot.getValue().toString());
            }

希望它会帮助你..