我正在尝试将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中使用了这个对象:
我现在有一个次要问题,我手动将数据插入到Firebase中,但现在我无法将列表映射到我的Java对象上,并且映射为null,我知道我能够正确下载数据;
答案 0 :(得分:2)
我不确定您的意思是不支持列表,因为它似乎they are supported.
基本写操作
对于基本写入操作,您可以使用setValue()将数据保存到 指定引用,替换该路径上的任何现有数据。您可以 使用此方法:
传递与可用JSON类型对应的类型,如下所示:
- 字符串
- 长
- Double
- 布尔
Map<String, Object>
List<Object>
- 如果定义它的类具有默认值,则传递自定义Java对象 不带参数的构造函数,并且具有公共getter 要分配的属性。
答案 1 :(得分:0)
Firebase支持键值映射。所以不支持列表。将其更改为Map类型,将电子邮件地址保留为键并指定布尔值true或false。