gpt4 book ai didi

javascript - Firebase 脚本代码显示在控制台中

转载 作者:行者123 更新时间:2023-12-01 01:52:29 25 4
gpt4 key购买 nike

总的来说,我对 Firebase 还很陌生,我有一些问题,不确定它们是否是个问题。

首先,我设置了 API key 等

<script>
firebase.initializeApp({
apiKey: '#####',
authDomain: '#####',
projectId: '####'
});

// Initialize Cloud Firestore through Firebase
var db = firebase.firestore();
</script>

然后我就去使用了谷歌给出的例子

<script>
var docRef = db.collection("MyTable").doc("person1");

docRef.get().then(function(doc) {
if (doc.exists) {
console.log("Document data:", doc.data());
} else {
// doc.data() will be undefined in this case
console.log("No such document!");
}
}).catch(function(error) {
console.log("Error getting document:", error);
});
</script>

它成功了,我得到了我需要的东西。购买我的主要问题是这不安全吗?

我打开了开发者控制台,检查了脚本以查看发生了什么,我看到它显示了所有内容,我的数据库名称,我正在访问的集合等等。

是什么让随机的人复制我的代码并在他们这边运行它?有解决办法吗?它应该像这样工作吗?

正如我所说,我对此很陌生,所以也许我在这里遗漏了一些东西。

最佳答案

您无法将数据库的域列入白名单。请记住,作为公共(public)云托管数据库,公共(public)实际上意味着公共(public)。也就是说,您可以做一些事情;

  • 使用 Firebase 云函数来处理您不想让客户端知道的任何事情。
  • 在您的网络客户端中使用/__/firebase/init.js ,这将配置和初始化您的 Firebase 实例,而无需将其显式加载到页面上 - 请记住,用户仍然可以通过点击 JS 链接来获取信息。<
  • 如果您的用户经过身份验证,则可以使用数据库规则来确保他们只有登录用户才能看到数据 { "rules": { ".read": "auth !== null"} } ,或者登录用户可以看到自己的数据。查看此处了解更多信息 https://firebase.google.com/docs/firestore/security/get-started#writing_rules
  • 如果您设置规则要求用户登录,则可以使用 google auth 将您的域列入白名单。这将确保只有您的用户才能查看您的数据,并且只能通过您的客户端查看您的数据。有关编写应用规则的查询的详细信息,请参阅此页 https://firebase.google.com/docs/firestore/security/rules-query

关于javascript - Firebase 脚本代码显示在控制台中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51347081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com