android - 导入 JSON 时如何将 GUID 分配给 Firebase 实时数据库中的记录
问题描述
我需要为一个新的 Android 应用程序将一个大型数据集导入 Firebase 实时数据库。准备数据不是问题,我在 Excel 中有一个 VBA 脚本可以执行此操作,但是,我希望导入的数据库中的某些节点具有 GUID,例如在将新数据“推送”到 Firebase 时生成的那些。我无法找到如何做到这一点。
例如,如果我导入此测试数据集:
{
"Genera": {
"Genus_1": {
"S001" : {
"name": "name_1",
"common_name": "common_1"
},
"S002": {
"name": "name_2",
"common_name": "common_2"
}
}
}
我想用 GUID 类型的字符串替换“Genus_1”和“Sxxxx”字符串。
如果这是可能的,我将如何实现它。谢谢, 席德
解决方案
当您将单个 JSON 片段导入 Firebase 实时数据库时,Firebase 不会为您生成任何子数据密钥。这意味着您有两个选择:
- 在单独的呼叫中导入每个部分。
- 预先生成您自己的密钥。
在单个呼叫中导入每个部分
如果您希望 Firebase 为 JSON 的特定部分生成密钥,则需要为每个此类部分调用 Firebase API,调用push()
您使用的平台或其等效项。例如
curl -X POST -d '{
"S001" : {
"name": "name_1",
"common_name": "common_1"
}
}' 'https://yourdb.firebaseio.com/Genera.json'
由于您在POST
这里使用,Firebase 服务器将Genera
在此调用中为 JSON 生成一个新密钥。
预生成您自己的密钥
如果您想一次性导入 JSON,则必须自己预先生成密钥。幸运的是,用于生成推送 ID 的算法可在线获得,并记录在此博客文章中:确保唯一标识符的 2^120 种方法。
推荐阅读
- qt - 一次取消选中/选中所有复选框
- java - 如何在 Java 中制作 Material Exposed Drop Down List 必填字段
- salesforce - 内部查询的 SOQL 记录数
- azure - 如何将资源组从禁用的订阅迁移到 Azure 中的工作目录
- react-native - 使用 渲染 iframe 时,Android 在导航回堆栈屏幕时崩溃
- python - 将纯文本从 qTextEdit 复制到 LibreOffice Writer (和)时添加了 html 标签
- angular - Angular-消耗一个再端点,然后在结果中调用另一个端点
- flutter - 在初始化绑定之前访问了 ServicesBinding.defaultBinaryMessenger 的特殊情况
- python - 如何使用 cython --embed 编译 python 代码?
- flutter - 如何在颤动中使用if(登录帐户firebase)更改抽屉幻灯片