我正在尝试允许用户将文件上传到firebase后端,我正在使用此规则:(存储空间填写在我的最后)
service firebase.storage {
match /b/<storage>/o {
match /{allPaths=**} {
allow write, read: if false;
}
}
}
这样我就可以看出它是否会阻止用户访问我打开的文件。但如果我去链接,我可以看到图像就好了。
为什么这条规则不阻止用户查看它?感谢。
答案 0 :(得分:3)
从Firebase存储中下载文件的方法有两种:
getFile()
或writeToFile:
等方法下载。getDownloadURL()
或downloadURLWithCompletion:
。如果您通过第一种方法下载,我们会在允许下载之前检查安全规则。这是将文件ACL化为用户或用户组的安全方法。
如果您通过第二种方法下载,那些URL是公共的,不可取的URL,因此任何人都可以访问它们,并且只受URL末尾令牌的不可访问性的保护。此方法非常适合与应用程序之外的用户共享文件(图片Google照片,您希望将照片发送给家人,但不想让他们下载应用程序)。
听起来你正在使用第二种方法,如上所述,它不会检查安全规则。如果您要创建文件,可以在Firebase控制台中删除下载令牌,或者永远不要与任何人共享这些URL。