Firebase FireStore只有在用户具有确切的文档ID时才允许读取
有没有办法让用户只有在拥有确切的文档ID时才能阅读文档?
数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">// should fail:
db.collection(`docs`).get()
// should succeed:
db.doc(`docs/${docId}`).get()
这就好比您在Google文档中启用了链接共享,而您只有在拥有该链接的情况下才能访问该文档。
解决方案
是的,如果您意识到安全规则中的read
是两个更精细操作的简写:list
和get
,这是可能的,而且实际上非常容易。
因此,如果您只允许get
,则用户必须知道特定的文档ID,并且他们无法获取或查询整个集合。
另请参阅granular security rules operations上的文档。
相关文章