我需要将大型数据集导入到Firebase实时数据库中以用于新的Android应用程序。准备数据不是问题,我在Excel中有一个VBA脚本可以执行此操作,但是,我希望导入的数据库中的某些节点具有GUID,例如将新数据“推送”到Firebase时生成的那些GUID。我不知道该怎么做。
例如,如果我导入此测试数据集:
{
"Genera": {
"Genus_1": {
"S001" : {
"name": "name_1",
"common_name": "common_1"
},
"S002": {
"name": "name_2",
"common_name": "common_2"
}
}
}
我想用GUID类型的字符串替换“ Genus_1”和“ Sxxxx”字符串。
如果可能的话,我将如何实现。 谢谢, 席德
答案 0 :(得分:1)
将单个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,则必须自己预先生成密钥。幸运的是algorithm for generating push IDs is available online,并记录在此博客文章:The 2^120 Ways to Ensure Unique Identifiers中。