javascript - 扩展中的 Firestore API key

标签 javascript firebase google-chrome-extension google-cloud-firestore

我正在制作一个 Chrome 扩展程序。

该扩展程序创建一个与用户提供的 url 相对应的唯一代码。

我将此 url 和 uID 写入我的 Firestore 数据库。

var url = document.getElementById("url").value;
var uID = randomID();
db.collection("links").doc(uID).set({
url: url
})

但是现在每个拥有我的 API key (存储在普通 JS 文件中)的人都可以写入数据库,而我需要扩展才能写入数据库。

有没有办法保护 Chrome 扩展程序的数据库?

最佳答案

有多种方法可以保护您的数据库。首先,您应该让您的插件需要某种形式的 Firebase/Firestore 身份验证。

https://firebase.google.com/docs/auth/web/start

这将使您的插件用户无法匿名连接。然后,您可以将规则应用于您的 Firestore,以在需要时保护数据。

如果您使用 chrome identity API,您或许可以提取用户的 Google ID。这似乎是一个展示该过程的可靠示例扩展。

https://github.com/firebase/quickstart-js/tree/master/auth/chromextension

在我们的工作中,我们利用了 Firebase 提供的自定义 token 功能,这样我们就可以使用我们自己的身份提供程序,如果您需要的话,它也非常有用。

坚持看文档,他们确实解释得很好。

关于javascript - 扩展中的 Firestore API key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53722822/

相关文章:

javascript - GitHub.js 不提供名为 'default' 的导出

Firebase 云消息传递忽略 APNS key

javascript - jQuery 相当于 Ajax 请求中 javascript 的 Transport.responseText 吗?

javascript - Angular2 显示错误 : TypeError: Cannot read property 'query' of null

javascript - 如何使用 table2excel.js 插件将 HTML 表格下载到 Excel 中

ios - 我正在尝试将 Firebase 添加到我的 Today Extension。它不会让我将 firebase 导入我的 View Controller

android - 构建失败并显示 'Program type already present: android.arch.core.util.Function'

javascript - chrome.identity.launchWebAuthFlow 中的自定义 url

javascript - 如何通过从外部源(数据库)提取值来动态调整 chrome 扩展的 manifest.json 的 "matches"键?

javascript - 单击函数执行当前和先前的函数代码