我正在使用firebase(firestore)开发一个网站,向基于角色的用户显示文章。
因此,数据库包含文章集合
qlt0mPbTBt1rQcrx1HJR: {
title: 'Article 1'
description: 'Lorem ipsum, dolor sit amet consectetur adipisicing elit.'
secretInfo: 'secret text for partners only...'
},
lrTk2ybMLiDuUw6pcwll: {
title: 'Article 2'
description: 'Lorem ipsum, dolor sit amet consectetur adipisicing elit.'
secretInfo: 'secret text for partners only...'
}
部分文章字段是公开的(例如标题/描述),并且应该由所有用户查看,同一篇文章的某些其他字段(例如secretInfo)是私有的,只应由具有特权角色的特定用户查看(合作伙伴) / admins等'...)。
我知道可以根据特定规则“允许读取”来自firebase的集合/文档 - 正如他们的文档中所描述的那样
service cloud.firestore {
match /databases/{database}/documents {
// Only the authenticated user who authored the document can read or write
allow read, write: if request.auth.uid == resource.data.author;
}
}
https://firebase.google.com/docs/firestore/security/rules-query
但我正在寻求的是有点不同,因为我试图根据firebase数据库规则仅允许 PART 文档。
我不是数据库开发人员,也不确定这是否通常在数据库中完成。
这有可能吗?我错误地接近了这个吗?
非常感谢任何帮助,
谢谢
答案 0 :(得分:1)
Firestore安全规则不支持限制文档中各个字段的访问权限。用户可以阅读整个文档,也可以不阅读。
如果您希望用户只能部分访问某些文章字段,则应创建两个集合,一个包含公共信息,另一个包含私有信息。然后用限制访问的规则保护私有集合。