我正在将数据从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 “)”
答案 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']