Форматирование для экспорта из Sheets в Firebase

Я работаю над системой подсчета очков в комбинации с приложением/листами для турнира. Текущие данные в базе данных Firebase хранятся под следующим тегом: tag:"[\"Test\",-1,12,3]" Данные представлены в виде списка, содержащего одну строку и 3 числа. Каждый индекс в списке будет храниться в последовательных ячейках, что упрощает обращение к данным. Трудность, с которой я сталкиваюсь, заключается в форматировании данных с листа для записи в базу данных в том же формате. Использование JSON.stringify не совсем дает мне то, что я ищу:

var range = sheet.getRange(22,24,4,1);
var data = JSON.stringify(range.getValues());

результат: тег:"[[\"Test1\"],[70],[0],[18]]"

Это не совсем то же самое, что и остальные данные, поскольку я превращаю весь диапазон в строку с помощью stringify, но я не знаю, как отформатировать данные, которые будут храниться как [string, int, int ,инт]. Я новичок в сценариях приложений и java (отсюда мое незнание функций) и надеялся, что кто-нибудь знает другой способ написать диапазон ячеек, чтобы он соответствовал данным, хранящимся в базе данных.


person Stuart Main    schedule 29.07.2020    source источник


Ответы (1)


Во-первых, скрипты Google Apps используют JavaScript, а не Java.

Вторая вещь getValues() возвращает массив массивов, где каждый внутренний массив имеет значения строки из соответствующего диапазона. Чтобы получить то, что вы ищете, вам нужно сгладить результат getValues(). Один из способов сделать это:

var range = sheet.getRange(22,24,4,1);
var data = JSON.stringify(range.getValues().map([value] => value));

var values = [["Test1"],[70],[0],[18]];
var data = JSON.stringify(values.map(([value]) => value));
console.info(data)

person Rubén    schedule 29.07.2020