以编程方式在实时数据库中导入 JSON,而不是手动

Posted

技术标签:

【中文标题】以编程方式在实时数据库中导入 JSON,而不是手动【英文标题】:Import JSON in Realtime Database programmatically, not manually 【发布时间】:2021-09-26 15:06:31 【问题描述】:

我希望能够使用我的应用中的按钮将 JSON 文件导入 Firebase。我知道您可以在 Firebase 控制台中手动添加 JSON 文件,但在这种情况下,我想让我的用户使用按钮导入 JSON 文件并更新实时数据库中的信息。有人可以帮我吗?

【问题讨论】:

您要将其上传到实时数据库还是 Firestore? 对不起,我应该早点说。数据库!! 你用的是java、kotlin、flutter吗? 我正在使用 kotlin 【参考方案1】:

您需要先将json 转换为map,然后将其直接保存到您想要的路径:

val jsonMap = Gson().fromJson<Any>(stringJson, object : TypeToken<HashMap<String, Any>>() .type)

Firebase ref = new Firebase(YOUR_FIREBASE_PATH);
ref.setValue(jsonMap );

【讨论】:

【参考方案2】:

我希望能够手动将 JSON 文件导入 Firebase

没有用于执行此操作的 API。如果您想让用户能够将 JSON 文件的内容添加到实时数据库,那么您应该为此编写一些代码。这意味着您需要实现一个选项,用户可以在其中将 JSON 文件上传到本地存储,然后在您的应用程序代码中,您应该读取文件并将数据作为 JSON 字符串获取。要将其转换为地图,您可以简单地使用:

val jsonObj = JSONObject(jsonString)
val map = jsonObj.toMap()

现在,如果您使用的是Firebase Authentication,则要将这个 Map 对象写入实时数据库中对应于特定用户的位置,请使用以下代码行:

val uid = FirebaseAuth.getInstance().currentUser?.uid
val rootRef = FirebaseDatabase.getInstance()
val uidRef = rootRef.child("users").child(uid)
uidRef.setValue(map).addOnCompleteListener(/* ... /*)

【讨论】:

嗨玛丽娜!我可以帮助您了解其他信息吗?如果您认为我的回答对您有所帮助,请考虑通过单击左侧投票箭头下方的复选标记(✔️)来接受它。应将颜色更改为绿色。我真的很感激。谢谢!

以上是关于以编程方式在实时数据库中导入 JSON,而不是手动的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式校准传感器,而不是手动设置 *#0*#?

在 OCaml 中导入和解析日历

在 phpmyadmin 中导入/导出数据

go中导入包的几种方式

在反馈中导入第三方jQuery,CSS,Java Script到index.html是好的,而不是使用npm或yarn

在 Python 3 中导入模块时出现 AttributeError