【问题标题】:Firebase data insert issue. Data is not inserted properlyFirebase 数据插入问题。数据未正确插入
【发布时间】:2016-12-05 13:21:35
【问题描述】:

我正在尝试将 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,我知道我可以正常下载数据;

【问题讨论】:

标签: android firebase firebase-realtime-database


【解决方案1】:

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

基本写操作

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

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

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

【讨论】:

  • 我错过了这一点,谢谢纠正。但是列表无法一一访问。所以我猜地图更有用
【解决方案2】:

Firebase 支持键值映射。所以不支持列表。将其更改为 Map 类型,将电子邮件地址作为键并分配一个布尔值 true 或 false。

【讨论】:

  • 我尝试将其更改为地图类型,但这不起作用,因为上传的值相同。此外,我不能将电子邮件地址用作 firebase 中的键,因为它们包含数据路径中不允许的句点
  • 你的邮箱不是字符串吗?肯定是。 map = new Hash Map... 和 map.put (email, true)。如果电子邮件不同,则不会覆盖
  • 是,但电子邮件包含 @ 和 .对于firebase键是无效字符,hashmap很容易接受它,但不会上传到firebase
  • 而不是电子邮件映射用户,所以映射 。会更灵活更轻便
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-18
  • 1970-01-01
相关资源
最近更新 更多