用于将数据从Google表格发送到Firebase的脚本。 函数writeData(){
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 department = data[i][0];
var year = data[i][1];
var course = data[i][2];
dataToImport[department] = {};
dataToImport[department][year] = {}
dataToImport[department][year][course] = {}
dataToImport[department][year][course][i] = {
course: data[i][3],
dateAdded: data[i][4],
fileSize: data[i][5],
fileType:data[i][6],
downloadLink: data[i][7],
};
}
var firebaseUrl = "https:url";
var base = FirebaseApp.getDatabaseByUrl(firebaseUrl);
base.setData("",dataToImport);
}
问:我的问题是,由于我有父母的电气设备,并且有两个孩子,分别是1和2,每个孩子分别有一个课程dsp和aes,但是只发送了一个孩子,这是第二个孩子。
为什么第一个孩子没有被送到firebase?
答案 0 :(得分:3)
此代码将以前的条目替换为新的条目。替换为-
dataToImport[department] = {};
dataToImport[department][year] = {}
dataToImport[department][year][course] = {}
与此-
dataToImport[department] = dataToImport[department] || {};
dataToImport[department][year] = dataToImport[department][year] || {}
dataToImport[department][year][course] = dataToImport[department][year][course] || {}
答案 1 :(得分:1)
作为@ra89fi's答案的旁注(因为我没有注意到覆盖错误)。
第base.setData("",dataToImport);
行正在使用给定数据({{1})在数据库(""
)的根处设置所有数据。 }。数据库中的所有其他数据都将被删除。
相反,您应该使用更新操作。
很遗憾,我无法确定您正在使用哪个版本的Firebase API。它不是REST API,也不是JavaScript。因此,这里有一些相关的文档链接。