gpt4 book ai didi

firebase - Cloud Firestore - 仍然出现 "any user can write to your entire database"错误

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

我已将规则添加到我的 Cloud Firestore 数据库,但仍收到以下问题消息:

  • 任何用户都可以读取您的整个数据库
  • 任何用户都可以写入您的整个数据库

请参阅以下规则。

enter image description here

确实,任何用户都可以读写“用户”集合,否则我将无法登录/注册用户。如何解决这个问题?

谢谢

最佳答案

您当前规则的问题是它允许任何用户读/写任何其他用户的用户文档。您需要对其进行更多限制以查看文档的 userId。像这样

service cloud.firestore {
match /databases/{database}/documents {

// Ensure the user is authenticated
function userIsAuthenticated() {
return request.auth != null && request.auth.uid != null
}

// Ensure the user owns the existing resource
function userOwnsResource() {
return userIsAuthenticated() && request.auth.uid == resource.data.userId
}

// Ensure the user owns the new resource
function userOwnsNewResource() {
return userIsAuthenticated() && request.auth.uid == request.resource.data.userId
}

match /users/{userId=**} {
allow read, update, delete: if userOwnsResource();
allow create: if userOwnsNewResource();
}
}
}

userOwnsResource 检查用户是否可以访问现有资源。 userOwnsNewResource 检查他们是否可以为他们的 userId 创建一个新文档。您显然可以在其他方便的规则中重用这些函数。

关于firebase - Cloud Firestore - 仍然出现 "any user can write to your entire database"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55373300/

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