在Firebase中是否可以对包含对象作为变量的对象进行序列化和反序列化?

时间:2019-04-14 22:10:54

标签: android firebase firebase-realtime-database

我正在尝试构建数据库,我想知道是否可以使用以下结构从Firebase RealDatabase中反序列化对象。

public class Profile{
    private String userID;
    private TenantProfile tenant;
}
public class TenantProfile{
    private String name;
    private Room room;
}
public class Room{
    private String town;
    private int size;
}

能否通过单个查询反序列化Firebase中的整个对象配置文件?

我只想确保在重构​​代码并更改对数据库的引用之前可以做到这一点。

先谢谢了。

1 个答案:

答案 0 :(得分:1)

Firebase数据库会序列化/反序列化任何公共字段,以及遵循针对getter和setter的JavaBean命名约定的公共属性。由于您显示的类都不包含这些类,因此它们将不会读取或写入任何数据。

如果您将字段标记为public或添加公共获取者/设置者,则编写Profile类的实例将生成以下JSON:

"userID": {
  "tenant": {
    "name": "the name",
    "room": {
      "town": "the town",
      "size": 42
    }
  }
}

这也是您需要在数据库中读取回值的格式。