Android Firebase数据插入问题。数据插入不正确
我正在尝试将POJO插入Firebase。但是,有些字段似乎没有解析为Firebase,但没有警告或错误 我有一个POJO:Android Firebase数据插入问题。数据插入不正确,android,firebase,firebase-realtime-database,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,
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.
}
}
公共类组{
公共字符串名称;
公共字符串管理;
公共列表加法器;
公开受邀者名单;
公共组(字符串名称、字符串管理、ArrayList addedUsers、ArrayList invitedUsers){
this.name=名称;
this.admin=admin;
this.addedUsers=addedUsers;
this.invitedUsers=invitedUsers;
}
公共组(){
//需要默认构造函数,因为我们还有一个非默认构造函数。
}
}
我通过这样做上传到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);
DatabaseReference groupRef=ref.child(“组”);
ArrayList addedUsers=新的ArrayList();
addedUsers.add(“email1@gmail.com");
addedUsers.add(“email2@gmail.com");
ArrayList invitedUsers=新的ArrayList();
组newGroup=新组(“组名”,
"email1@gmail.com“,添加者,被邀请者
);
groupRef.push().setValue(newGroup);
我最终在Firebase中得到了这个对象:
我现在有第二个问题,我手动将数据插入Firebase,但现在我无法将列表映射到我的Java对象,并且映射为null,我知道我可以很好地下载数据 Firebase支持键值映射。因此不支持列表。将其更改为映射类型,将电子邮件地址保留为键,并指定布尔值true或false。我不确定列表不受支持是什么意思,似乎是这样的 基本写操作 对于基本写入操作,可以使用setValue()将数据保存到 指定的引用,替换该路径上的任何现有数据。你可以 使用此方法可以: 传递与可用JSON类型对应的类型,如下所示:
- 串
- 长的
- 双重的
- 布尔值
Map
列表
- 如果定义自定义Java对象的类具有默认值,则传递该对象 构造函数,该构造函数不接受参数并且具有 要分配的属性
我尝试将其更改为映射类型,但是这不起作用,或者上传的值相同。此外,我不能在firebase中使用电子邮件地址作为密钥,因为它们包含数据路径中不允许的句点。您的电子邮件字符串不是吗?一定是这样。map=新哈希映射。。。和map.put(电子邮件,true)。如果电子邮件不同,则不会覆盖它,但电子邮件包含@和。这是firebase密钥的无效字符,hashmap将很容易接受它,但它不会上载到firebase,而不会将电子邮件上载到map用户。这将是更灵活和轻我错过了这一点的修正。但是列表无法逐个访问。所以我想地图更有用,这也许可以解释为什么
invitedUsers
没有显示。但是,我相信。此外,将非静态成员变量声明为private
也是一种很好的做法。