前一段时间我在使用 integration of Firebase in Google Apps Script作为服务器端,它运行良好,并且仍在我的旧项目中运行。
但是今天在创建了一个新的 Firebase 项目和一个新的实时数据库之后,尝试将 Firebase 项目集成到我的 Google Script project 中。我收到了 an error它不能完全工作。我意识到 Firebase deprecated database secret用于新项目。
所以,我现在的问题是如何解决这个问题?还有另一种方法可以将 Firebase 集成到 Google Script 项目中吗?
最佳答案
您需要将正确的 OAuth 范围添加到您的 Apps 脚本项目的 list 文件中,然后传入 access_token
参数(或在 Authorization
header 中)而不是 auth
您当前使用的参数。
基于 Doug's gist here ,基本步骤是:
manifest.json
从脚本编辑器中,通过单击查看 > 显示 list 文件。 "oauthScopes": [
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/firebase.database",
"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/spreadsheets"
]
最后一个范围授予它访问电子表格本身的权限。如果您使用其他 GSuite 类型(文档、幻灯片、表单等),您将需要与类型对应的范围。
var response = UrlFetchApp.fetch(databaseUrl, {
method: "PUT",
headers: {
"Content-type": "application/json",
"Authorization": "Bearer "+ScriptApp.getOAuthToken()
},
payload: JSON.stringify(json)
});
Logger.log(response.getContentText());
这样做的一个主要优点是您的脚本现在将以实际用户身份运行,这意味着您可以确保它只能通过安全规则执行授权操作。
关于firebase - 如何在不使用(已弃用)数据库 secret 的情况下将 Firebase 集成到 Google Apps 脚本中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53207906/