想要从 Firebase 数据库获取 google Sheet 上的实时数据,而无需每次都执行应用程序脚本

问题描述 投票:0回答:1
function doGet() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheets();
  var sheet = ss.getActiveSheet();

  var firebaseUrl = "my-firebase-url";

  var base = FirebaseApp.getDatabaseByUrl(firebaseUrl);

  var dataSet = [base.getData()];


  // the following lines will depend on the structure of your data
  var rows = [],
    data;

  console.log(dataSet[0])
  for (i = 0; i < dataSet.length; i++) {
    data = dataSet[i];
    for (j = 0; j < dataSet[i].length; j++) {
      //check your data tye in firebase and update accordingly 
      //for eg : my data types are id,name,batch 
      rows.push([data[j].timestamp, data[j].waterConsumption]);
    }
  }
  if (rows.length > 0) {
    // Adjust the range to start from row 1, column 1
    var dataRange = sheet.getRange(2, 1, rows.length, rows[0].length);
    dataRange.setValues(rows);
  } else {
    console.log("No data to import.");
  }

}

我想要来自 firebase 实时数据库的 google 工作表上的实时数据,但只有当我运行脚本时才会发生这种情况,我希望它自动侦听 firebase 数据库更改,然后在 google 工作表上更新

firebase google-sheets google-apps-script google-cloud-platform firebase-realtime-database
1个回答
0
投票

FirebaseApp
构建在 Firebase 实时数据库的 REST API 之上。看起来图书馆没有任何内置的方式来监听数据的实时更新。

如果您想检索实时更新,您可以考虑扩展该库以支持其 REST Streaming 协议 - 但我不知道 Apps 脚本的现有实现。

© www.soinside.com 2019 - 2024. All rights reserved.