首页 > 解决方案 > 自动将数据从 Firebase 同步到 Google 表格

问题描述

每次在我的 RealtimeDB 中进行更改时,我都需要在不按任何按钮的情况下将这些数据获取到我的 Google 表格中。如何做到这一点?

PS。下面的代码完全符合我提到的但不是自动的

function getData() {
var firebaseUrl = "https://databse.firebaseio.com/Items";
var base = FirebaseApp.getDatabaseByUrl(firebaseUrl);
var data = base.getData();

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");

var num = 2;
range = sheet.getRange("A"+num+":D"+num+"");
  
var range2 = sheet.getRange("A2:D");
range2.clearContent();

  
for(var i in data) {
  var values = [
  [ data[i].itemname, data[i].itembarcode, data[i].itemprice]
  ];
  range.setValues(values);
  num += 1;
  range = ss.getRange("A"+num+":D"+num+"");
  } 
}

标签: javascriptgoogle-apps-scriptfirebase-realtime-databasegoogle-sheets

解决方案


要在数据库更改时自动更新工作表,您有两种选择:

  1. 使用数据库内容定期刷新工作表。您可以通过getData在触发器上运行函数来完成此操作。
  2. 收听来自数据库的实时更新。FirebaseApp虽然 Firebase 具有此选项,但它在库中不可用。

如果您想在工作表发生更新时将更新推送到工作表中,则必须将它们从支持侦听实时更新的环境推送到工作表中。Doug Stevenson在通过 Cloud Functions 实时将数据从 Firebase 实时数据库复制到 Google 表格中写了一个很好的示例。


推荐阅读