使用Google Apps脚本从Firebase读取数据

时间:2014-08-27 14:27:13

标签: google-apps-script google-sheets firebase

因此,正如标题所示,我目前正在研究一个相当棘手的问题。这是场景。

我有一个包含名称,电子邮件和到期日期模板的Google电子表格。但是,它不包含实际数据。数据本身位于Firebase中,并且不断变化。因此,我的目标是允许附加到我的电子表格的script.gs文件通过定时间隔或使用Firebase的典型dataRef.on('value',function(){});从Firebase中读取。

我已经尝试过使用网络应用,但是Caja会对Firebase的代码进行诋毁,为了使用Firebase对象,您必须拥有这些代码。我尝试将Firebase脚本包含为库,然后将其直接复制到script.gs。没有任何效果。

我认为我的问题很大程度上源于gs环境,即服务器。但是,cURL放置在script.gs时似乎不起作用。无论如何,希望你们其中一个人有答案。如果您需要进一步澄清,请告诉我。

2 个答案:

答案 0 :(得分:6)

我将Firebase与Google Apps脚本一起使用。您需要使用Google的urlFetch。 Google Documentation

代码示例:获取数据

var optList = {"method" : "get"};
var recordName = "theUserID";

var rsltList = UrlFetchApp.fetch("https://yourFireBaseDB_name.firebaseio.com/" +
recordName + "/.json", optList );

在上面的示例中,对firebase进行了 GET 请求。您想要数据的数据库必须包含在URL中。该网址必须以/.json结尾。您的数据库结构反映在URL中。在上面的示例中,数据库对每个用户ID都有不同的记录,并且用户ID被放入URL中。

UrlFetchApp.fetch()方法可以有一个或两个参数。

fetch(url, params)

fetch Documentation

您需要使用高级参数来指定发送的请求类型:例如: PUT,GET 。注意:您无法直接使用UrlFetchApp.fetch指定 PATCH 请求,但您可以在标头中添加覆盖以发送 PATCH 请求。< / p>

使用 PATCH 请求更加安全。

如果您决定使用UrlFetchApp.fetch向Firebase写入数据,那么很高兴知道使用 PUT 请求可以覆盖并清除所有数据(如果网址为配置不正确。

在上面的示例中,返回的数据被放入变量:rsltList

fetch方法的第二个参数是一个对象。 {"method" : "get"}

该对象是key:value对。

答案 1 :(得分:0)

好吧,我想出了一个相当愚蠢的方法来做到这一点,但它完成了这项工作。我设置了一个本地脚本来从Firebase中读取。每次添加值时,脚本都会向Google表单发送ajax调用,该表单包含一个充满响应的电子表格。 ajax调用模拟表单提交,中提琴!我能够通过Firebase将客户端的信息通过ajax发送到第二个客户端到googlesheet,script.gs可以访问该信息并对其进行操作。这个解决方案的最佳部分恕我直言,我不必惹恼谷歌的偏执代码解析器/截断者:)