从Gsuite电子表格公式到Firebase SDK ID令牌的访问



这对我来说并不干净

让我们假设我开发了一个Gsuite公式,该公式应该与要求数据并在Google电子表格中显示数据的第三方后端配合使用。第三方的后端需要Firebase ID令牌作为承载认证过程的一部分。

我知道如何使用HTML弹出窗口或侧边栏中的Firebase Authentication SDK获取ID令牌。我知道,ID令牌每小时左右都过期,并且由Firebase SDK自动恢复。问题是,当公式执行时,它无法访问Firebase SDK(我错了吗?),因此可以使用存储在用户缓存中的某个地方的已过期令牌。此外,如果电子表格打开并试图刷新数据,尽管用户仍登录到firebase,则该公式无法进行调用

firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idToken) {
  // Send token to your backend via HTTPS
  // ...
}).catch(function(error) {
  // Handle error
});

解决此问题的"规范"方法是什么?

Jean-Remi建议在无法使用所提供库的情况下,Jean-Remi建议的答案是直接使用Firebase REST API,

tl; dr。可以使用Firebase auth Rest API和Firebase DB访问REST API。

您无法期望使用普通的"弹出流"在Google Apps脚本中进行身份验证(因为我认为这是" GSUITE公式"的意思),因为其执行是服务器端。

您可以使用服务帐户令牌对您的数据库进行身份验证,也可以使用AppsScript检索的用户电子邮件生成ID令牌(如果在您的公式中使用)。

查看我们的连接器以在AppsSript中使用Firebase:https://www.npmjs.com/package/@scriptaddicts/gas-firebase-app

最新更新