gpt4 book ai didi

javascript - 类博客的 Google Firestore 规则

转载 作者:行者123 更新时间:2023-11-30 19:01:22 24 4
gpt4 key购买 nike

我自愿为我的英语课创建一个类(class)博客,每个人都可以在其中创建帐户并发布内容。我为此使用了 Google firebase,身份验证和 Firestore。任何人都可以注册并发布他们的东西。除了数据库安全规则外,一切正常,现在,它处于测试模式,因此任何人都可以对数据进行任何操作。

它的结构是:

/users/{身份验证 UID}:- 加入- 姓名- uid(这是从用于个人资料页面和其他的 javascript 生成的 token )

/帖子/{PID}:- 日期- pid- 邮政- 标题- 用户标识符

/评论/{PID}:- 评论- 日期- pid- 用户标识符

澄清一些事情:有两个 uid,一个是来自身份验证的文档名称,另一个是从用于帖子、评论和个人资料页面的 JavaScript 生成的 token 。

我所要求的只是一件简单的事情。 我应该使用什么规则来保护数据?我查看了 firebase 文档,但没有成功。

编辑 1: 稍微更改了已接受答案的规则并使其正常工作(我认为):

rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read: if true;
}

match /users/{userId} {
allow write: if request.auth.uid == userId;
}
match /posts/{postId} {
allow create: if request.auth.uid != null;
allow update, delete: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.uid == resource.data.uid;
}
match /comments/{commentId} {
allow create: if request.auth.uid != null;
allow update, delete: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.uid == resource.data.uid;
}
}
}

最佳答案

查看以下可用于 firestore 数据库的规则

service cloud.firestore {
match /databases/{database}/documents {
//create document id with users UID assigned by firestore, while creating a users document, this rules allows users to read and write only their data
match /users/{userId} {
allow read, write: if request.auth.uid == userId;
}
//post id is random id generated by firebase
match /posts/{postId} {
//allows authenticated users to create or read posts
allow read, create: if request.auth.uid != null;
//allows users to update or delete only their posts.
allow update, delete: if get(/databases/$(database)/documents/posts/$(request.auth.uid)).data.uid == request.auth.uid;
}
//comment id is random id generated by firebase
match /comments/{commentId} {
//allows authenticated users to create or read comments
allow read, create: if request.auth.uid != null;
//allows users to update or delete only their comments.
allow update, delete: if get(/databases/$(database)/documents/posts/$(request.auth.uid)).data.uid == request.auth.uid;
}
}
}

关于javascript - 类博客的 Google Firestore 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59479872/

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