javascript - 自动将数据从 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+"");
}
}
解决方案
要在数据库更改时自动更新工作表,您有两种选择:
- 使用数据库内容定期刷新工作表。您可以通过
getData
在触发器上运行函数来完成此操作。 - 收听来自数据库的实时更新。
FirebaseApp
虽然 Firebase 具有此选项,但它在库中不可用。
如果您想在工作表发生更新时将更新推送到工作表中,则必须将它们从支持侦听实时更新的环境推送到工作表中。Doug Stevenson在通过 Cloud Functions 实时将数据从 Firebase 实时数据库复制到 Google 表格中写了一个很好的示例。