首页 > 解决方案 > 扩展中的 Firestore API 密钥

问题描述

我正在制作 Chrome 扩展程序。

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

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

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

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

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

标签: javascriptfirebasegoogle-chrome-extensiongoogle-cloud-firestore

解决方案


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

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

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

如果您使用 chrome 身份 API,您可能能够解除您用户的 Google ID。这似乎是一个展示该过程的可靠示例扩展。

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

在我们的工作中,我们使用了 Firebase 提供的自定义令牌功能,因此我们可以使用我们自己的身份提供者,如果您需要它,它也很有效。

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


推荐阅读