如何将对象列表写入firebase?

时间:2017-06-07 10:24:34

标签: android list firebase arraylist

我正在尝试在Firebase中一次编写多个节点,我的数据类

@IgnoreExtraProperties
public class Data{
    public String desc;
    public double id;
    public data(String desc,double id) {
        this.id=id;
        this.desc=desc;
    }
}

我正在尝试这个

   .....//firebase auth ok

    ArrayList<Data> mydata= new ArrayList<>();
    mydata.add(new Items("data1",1));
    mydata.add(new Items("data2",2));                               
    mDatabase.child("DATA").setValue(mydata);

但由于firebase不支持Listarray,因为我收到了错误

,因此失败了
  

com.google.firebase.database.DatabaseException:没有属性   在类android.support.v4.app.LoaderManagerImpl

上找到序列化

2 个答案:

答案 0 :(得分:0)

我认为问题是你是在根级别直接设置值。 只需尝试在根节点内创建另一个子节点。

List<Data> mydata= new ArrayList<>();
mydata.add(new Data("data1",1));
mydata.add(new Data("data2",2));                               
mDatabase.child("DATA").child("CHILD NAME").setValue(mydata);

答案 1 :(得分:0)

首先你的模型中的构造函数错误,需要Data而不是数据。您收到此错误的原因是您使用List而不是Map。更改此行代码:

ArrayList<Data> mydata= new ArrayList<>();
mydata.add(new Items("data1",1));
mydata.add(new Items("data2",2));                               
mDatabase.child("DATA").setValue(mydata);

DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
DatabaseReference pushedKey = mDatabase.child("DATA").push();
Data data = new Data("data1", 1));                             
pushedKey.setValue(data);

通过这种方式,每个新对象都会有不同的键。

希望它有所帮助。