firebase - 从 Firebase Admin SDK 导入 json 文件
问题描述
我可以通过在 Firebase 控制台中导入 json 文件来更新整个数据库(真实数据库):
如何从服务器端(使用 Firebase 管理员)以编程方式执行此操作?
我试过了
private void uploadFirebaseDatabaseFile(JsonObject jsonObject) {
// As an admin, the app has access to read and write all data, regardless of Security Rules
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
ref.setValue(jsonObject, (error, ref1) -> System.out.println(error + " " + ref1));
}
但它抛出java.lang.RuntimeException: java.lang.reflect.InvocationTargetException ... Caused by: java.lang.IllegalStateException: Not a JSON Primitive: { ...
解决方案
解决了它:
private void uploadFirebaseDatabaseFile(Gson gson, JsonObject jsonObject) throws Exception {
// As an admin, the app has access to read and write all data, regardless of Security Rules
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
CountDownLatch done = new CountDownLatch(1);
// we must convert our JsonObject and its all nested children to Map<String, Object>
ref.setValue(gson.fromJson(jsonObject, Map.class), (error, ref1) -> {
System.out.println(error + " " + ref1);
done.countDown();
});
done.await();
}
推荐阅读
- python - 在不引入外键的情况下在 Python DRF 序列化器中加入模型
- python - django:更新后强制缓存刷新
- javascript - 如何在javascript中将嵌套的对象数组转换为arraylist?
- windows - 如何使 LIFO 原则适用于回调?
- java - 尝试从自定义适配器调用 onClick 方法的空指针异常
- r-markdown - 带有下划线的数学中的 Rmarkdown 渲染错误
- mysql - 为什么 information_schema.TABLES 显示 AUTO_INCREMENT 列的值不正确?
- c - 如何使用 strstr 但使用用户未指定的关键字搜索字符串
- javascript - Vue.js 中的 Mqtt 客户端(更改 Vue.use 参数)
- jquery - 如何将 jquery 数据表发送/传递给控制器