контролировать ячейку листа Google из базы данных реального времени Firebase [дублировать]

Вы можете использовать Thread и запускать оба метода параллельно, используя многопоточность. Вам нужно будет переопределить run() и вызвать Thread.start()

Обратите внимание, что вам придется позаботиться о синхронизации ваших методов.

Также обратите внимание: вы получите «реальный параллельный запуск», только если ваш компьютер имеет 2+ ядра, однако, если это не так, ОС будет имитировать «параллельный» запуск для вас.

2
задан Eric Koleda 19 September 2016 в 17:59
поделиться

2 ответа

Надеюсь, это поможет кому-то, это сработало для меня.

function writeSheets() {
  var ss = SpreadsheetApp.openById("10lyQpQtEA7euCfdU2isrqB_bgPuy-eSbW74h7oDP3ko");
  var sheet = ss.getSheets()[0];
  var firebaseUrl = "https://myapp.firebaseio.com/";
  var secret = "pCOCwKCC582jpqdZe2EqPqnW3IAd3UyO9oB4uaEL2";  // get this from firebase project settings
  var base = FirebaseApp.getDatabaseByUrl(firebaseUrl);
  var data = base.getData();
  var keys = Object.keys(data.entries);
  var sheetRow = [];
  var entryKeys;
  for (index in keys) {
    sheetRow = [];
    entryKeys = Object.keys(data.entries[keys[index]])
    for (i in entryKeys) {
      sheetRow.push(data.entries[keys[index]][entryKeys[i]]);
    }
    //Logger.log(sheetRow);
    sheet.appendRow(sheetRow);                            
  }
}

Примечание: для того, чтобы этот код работал, вам необходимо установить библиотеку firebaseapp в редакторе сценариев в соответствии с этими инструкциями, https://sites.google.com/site/scriptsexamples/new-connectors-to-google-services/firebase

4
ответ дан uknowit2 17 August 2018 в 09:16
поделиться
  • 1
    Здравствуй! Я пытаюсь запустить вашу функцию, но она как-то не работает: var keys = Object.keys(data.entries); (передача undefined argument) – Cesare 20 July 2017 в 06:26

Я использую новейшую версию Firebase. Этот фрагмент кода работает для меня.

function getFacturasClientesExistentes() {
var firebaseUrl = "https://test.firebaseio.com/FacturasBLP/clienteExistente";
var base = FirebaseApp.getDatabaseByUrl(firebaseUrl);
var data = base.getData();

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Facturas Clientes Existentes");

var num = 2;
range = sheet.getRange("A"+num+":F"+num+"");
for(var i in data) {
  var values = [
  [ data[i].fecha, data[i].sucursal, data[i].cantidad, data[i].cliente, data[i].correo, data[i].estatus ]
  ];
  range.setValues(values);
  num += 1;
  range = sheet.getRange("A"+num+":F"+num+"");
  } 
}

Некоторые примечания:

  1. Я ранее писал заголовки для своих данных в электронной таблице
  2. In строка range = sheet.getRange("A"+num+":F"+num+""); от A до FI имеет мои заголовки
5
ответ дан Xaverius 17 August 2018 в 09:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: