从 GSuite 电子表格公式访问 Firebase SDK ID 令牌
Access from GSuite Spreadsheets formula to Firebase SDK ID token
我不清楚如何在 GSuite 公式中实施 firebase 身份验证。
假设我开发了一个 GSuite 公式,该公式应该与第三方后端一起请求数据并在 Google 电子表格中显示数据。第三方后端需要 Firebase ID 令牌作为 Bearer authentication 流程的一部分。
我知道如何在 HTML 弹出窗口 window 或侧边栏中使用 Firebase 身份验证 SDK 获取 ID 令牌。我知道 ID 令牌每隔一小时左右就会过期 its auto-refreshed by 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
});
解决这个问题的"canonical"方法是什么?
TL;DR 正如 Jean-Remi 在接受的答案中所建议的那样,当无法使用所提供的库时,可以直接使用 Firebase REST API。有Firebase Auth REST API and Firebase DB Access REST API个可以用
您不能指望使用普通的 "popup flow" 在 Google Apps 脚本中进行身份验证(因为我想这就是 "GSuite formula" 的意思),因为它是在服务器端执行的.
您可以使用服务帐户令牌对您的数据库进行身份验证,或者使用 AppsScript 检索的用户电子邮件生成 ID 令牌(如果这在您的公式中有效)。
看看我们在 AppsSript 中使用 Firebase 的连接器:
https://www.npmjs.com/package/@scriptaddicts/gas-firebase-app
我不清楚如何在 GSuite 公式中实施 firebase 身份验证。
假设我开发了一个 GSuite 公式,该公式应该与第三方后端一起请求数据并在 Google 电子表格中显示数据。第三方后端需要 Firebase ID 令牌作为 Bearer authentication 流程的一部分。
我知道如何在 HTML 弹出窗口 window 或侧边栏中使用 Firebase 身份验证 SDK 获取 ID 令牌。我知道 ID 令牌每隔一小时左右就会过期 its auto-refreshed by 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
});
解决这个问题的"canonical"方法是什么?
TL;DR 正如 Jean-Remi 在接受的答案中所建议的那样,当无法使用所提供的库时,可以直接使用 Firebase REST API。有Firebase Auth REST API and Firebase DB Access REST API个可以用
您不能指望使用普通的 "popup flow" 在 Google Apps 脚本中进行身份验证(因为我想这就是 "GSuite formula" 的意思),因为它是在服务器端执行的.
您可以使用服务帐户令牌对您的数据库进行身份验证,或者使用 AppsScript 检索的用户电子邮件生成 ID 令牌(如果这在您的公式中有效)。
看看我们在 AppsSript 中使用 Firebase 的连接器: https://www.npmjs.com/package/@scriptaddicts/gas-firebase-app