扩展中的Firestore API密钥

时间:2018-12-11 11:07:24

标签: 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密钥(存储在一个普通JS文件中)的人都可以写入数据库,并且我需要扩展名才能写入数据库。

是否可以保护Chrome扩展程序的数据库安全?

1 个答案:

答案 0 :(得分:2)

有几种保护数据库的方法。首先,您应该使您的插件要求对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提供的自定义令牌功能,因此我们可以使用自己的身份提供程序,如果您需要的话,它也可以很好地工作。

贴在文档上,他们的解释确实很好。