【问题标题】:How can I write a list of objects to firebase?如何将对象列表写入firebase?
【发布时间】:2017-11-08 15:36:02
【问题描述】:

我正在尝试在 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 上找到序列化

【问题讨论】:

    标签: android list firebase arraylist


    【解决方案1】:

    首先您的模型中的构造函数错误,需要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);
    

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

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

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

      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);
      

      【讨论】:

      • 我不认为是这种情况,因为我实际上简化了上面的代码并删除了我已经拥有的额外节点。
      • 这就是我的工作方式并且工作正常。这里tripCollection是一个ArrayList mFirebaseDatabaseReference.child(Const.USER_TRIPS).child(uuid).child(tripCollection.getPnr()).setValue(tripCollection);
      • 你的 tripCollection 是一个 ArrayList 吗?
      • 是的 tripCollections 是一个 ArrayList
      猜你喜欢
      • 2021-09-12
      • 1970-01-01
      • 2013-04-27
      • 2018-12-06
      • 1970-01-01
      • 2020-07-18
      • 1970-01-01
      • 2014-10-15
      • 2021-05-25
      相关资源
      最近更新 更多