Firebase数据插入问题。数据未正确插入

时间:2016-12-05 03:53:27

标签: android firebase firebase-realtime-database

我正在尝试将POJO插入Firebase。但是,某些字段似乎无法解析为Firebase,但没有警告或错误。

我有这个POJO:

public class Group {
    public String name;
    public String admin;
    public List<String> addedUsers;
    public List<String> invitedUsers;

    public Group(String name, String admin, ArrayList<String> addedUsers, ArrayList<String> invitedUsers) {
        this.name = name;
        this.admin = admin;
        this.addedUsers = addedUsers;
        this.invitedUsers = invitedUsers;
    }

    public Group() {
        // Default constructor required because we have a non-default constructor as well.
    }
}

我通过这样做上传到Firebase:

DatabaseReference groupRef = ref.child("Groups");
ArrayList<String> addedUsers = new ArrayList<String>();
addedUsers.add("email1@gmail.com");
addedUsers.add("email2@gmail.com");
ArrayList<String> invitedUsers = new ArrayList<String>();
Group newGroup = new Group("GroupName",
        "email1@gmail.com", addedUsers, invitedUsers
);

groupRef.push().setValue(newGroup);

我最终在Firebase中使用了这个对象:

enter image description here

我现在有一个次要问题,我手动将数据插入到Firebase中,但现在我无法将列表映射到我的Java对象上,并且映射为null,我知道我能够正确下载数据;

2 个答案:

答案 0 :(得分:2)

我不确定您的意思是不支持列表,因为它似乎they are supported.

  

基本写操作

     

对于基本写入操作,您可以使用setValue()将数据保存到   指定引用,替换该路径上的任何现有数据。您可以   使用此方法:

     

传递与可用JSON类型对应的类型,如下所示:

     
      
  • 字符串
  •   
  •   
  • Double
  •   
  • 布尔
  •   
  • Map<String, Object>
  •   
  • List<Object>
  •   
  • 如果定义它的类具有默认值,则传递自定义Java对象   不带参数的构造函数,并且具有公共getter   要分配的属性。
  •   

答案 1 :(得分:0)

Firebase支持键值映射。所以不支持列表。将其更改为Map类型,将电子邮件地址保留为键并指定布尔值true或false。