我正在尝试在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
上找到序列化
答案 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);
通过这种方式,每个新对象都会有不同的键。
希望它有所帮助。