如何将 JSONObject 写入 Firebase 数据库节点



我目前正在尝试将应用程序从SQLDatabase迁移到Firebase。我已经完成了将数据库转换为JSONObject的所有工作。有没有办法用这个对象填充 Firebase 中的用户节点?

我试图用

database.getReference("/" + user.getUid() + "/").setValue(jsonObject);

这将返回错误

com.google.firebase.database.DatabaseException: No properties to serialize found on class org.json.JSONObject

我试图避免分解对象并单独发布单个值,因为这可能容易出错,而且我不能冒着因混乱循环而损坏数据的风险......感谢您的任何帮助。

您可以使用ObjectMapper将 json 转换为对象:

ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(jsonObject.toString(), User.class);

https://fasterxml.github.io/jackson-databind/javadoc/2.7/com/fasterxml/jackson/databind/ObjectMapper.html

然后,您可以使用类User的实例setValue()

database.getReference("/" + user.getUid() + "/").setValue(user);

从文档中:

此外,还可以将自己的类的实例设置到此位置,前提是它们满足以下约束:

该类必须具有不带参数的默认构造函数

该类必须为要分配的属性定义公共 getter。反序列化实例时,没有公共 getter 的属性将设置为其默认值

最新更新