Объект перезаписан в базе данных - PullRequest
0 голосов
/ 15 марта 2019

Отправка данных с гугл листа: enter image description here

Скрипт, использующий для отправки данных в базу данных с листа Google. function 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);  

}

Данные, которые отправляются: enter image description here

В: Мои вопросы, так как у меня был родительский электрик и два его ребенка, которым было 1 и 2, и у каждого ребенка был курс dsp и aes соответственно, но отправляется только 1 ребенок, который является вторым.

Почему первый ребенок не отправляется на базу?

Ответы [ 2 ]

3 голосов
/ 15 марта 2019

Этот код заменяет предыдущую запись новой записью.Замените это -

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 голос
/ 15 марта 2019

В качестве примечания к ответу @ ra89fi (поскольку я не обнаружил ошибку перезаписи).

Строка base.setData("",dataToImport); означает , задавая все данные в корне вашей базы данных ("") с данными (dataToImport).Любые другие данные в вашей базе данных будут удалены.

Вместо этого вам следует использовать операцию обновления.

Я, к сожалению, не могу установить, какую версию Firebase API вы используете.Это не совсем REST API и не совсем JavaScript.Вот некоторые ссылки на соответствующую документацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...