从Google Spread发送数据到Firebase时解析错误

时间:2019-06-12 04:46:53

标签: firebase google-apps-script google-sheets

我正在将数据从Google电子表格发送到Firebase。我的数据包含“ 0.5 ml”,“ 2.5 ml”等值。AppScript无法解析此数据。这是我的代码

function myFunction() {
 var ss = SpreadsheetApp.openById("****");
 var sheet = ss.getSheets()[0];
 var data = sheet.getDataRange().getValues();
 var dataToImport = {};
  for(var i = 1; i < data.length; i++) {
   var Name = data[i][1];
   dataToImport[Name] = {
     Name: Name,
   };
 }
 var secret ="*****"
 var firebaseUrl = "******";
 var base = FirebaseApp.getDatabaseByUrl(firebaseUrl,secret);
 base.setData("", dataToImport);

}

这是我得到的错误:

“错误:400-无效数据;无法分析从1:2开始的键。键值不能为空或包含$#[] /或。(第303行,文件“ Code”,项目“ FirebaseApp “)”

1 个答案:

答案 0 :(得分:0)

该错误背后的原因是Firebase不允许在孩子的Key中使用某些特殊字符。可以看到我的原始代码,我使用名称本身作为密钥,其中包含诸如“。”之类的字符。

我对代码进行了如下更改,以便可以随机设置密钥,并且可以正常工作:

>>> rawlines = '''
... 1 A C++ Primer 1
... 1.1 Basic C++ Programming Elements 2
... 1.1.1 A Simple C++ Program 2
... '''
>>> [i.split(" ")[0] for i in rawlines.strip().split("\n")]
['1', '1.1', '1.1.1']