所以我有这样的安全规则:
service firebase.storage {
match /b/{bucket}/o {
match /eventPoster/{imageID} {
allow read: if isSignedIn()
allow create: if isSignedIn() && isImage() && lessThanNMegabytes(0.5)
}
function isSignedIn() {
return request.auth != null;
}
function isBelongTo(userId) {
return request.auth.uid == userId;
}
function lessThanNMegabytes(n) {
return request.resource.size < n * 1024 * 1024;
}
function isImage() {
return request.resource.contentType.matches('image/.*');
}
}
}
如您所见,我只设置了可以查看/读取图像的登录用户。但是,如果我像下面的隐身浏览器一样,将文件中的链接复制并粘贴到存储区中,仍然可以看到我的图片
我希望我无法通过浏览器看到图像,我使用google chrome对其进行了测试。即使我的应用程序仅适用于Android和iOS,也仅用于测试,我还是使用浏览器。我认为,如果我通过浏览器访问它,则没有登录
您在此处共享的URL是一个下载URL。无论安全规则如何,该URL都是公共可读的。阻止其工作的唯一方法是从Firebase控制台中撤消其令牌。