【发布时间】:2020-10-08 16:58:19
【问题描述】:
我将 Flutter 与 firebase 一起使用来保存我的图像,并将我的应用程序用作经过身份验证的 firebase 用户。
规则第一个用例:
rules_version = '2';
firebase.storage service {
match / b / {bucket} / o {
match / {allPaths = **} {
allow read, write: if true;
}
}
}
在这里,为了显示图片,我可以使用图片的下载网址:await ref.getDownloadURL ();
例子:
https://firebasestorage.googleapis.com/v0/b/project_name/o/images%2Fimage_name.jpg?alt=media&token=TOKEN
但我也可以使用照片的直接网址(不带令牌)并且效果很好。
例子:
https://firebasestorage.googleapis.com/v0/b/project_name/o/images%2Fimage_name.jpg?alt=media
规则第二个用例:
rules_version = '2';
firebase.storage service {
match / b / {bucket} / o {
match / {allPaths = **} {
allow read, write: if request.auth! = null;
}
}
}
在这里我可以使用await ref.getDownloadURL ();
但我不能使用图片网址(硬编码)
我的问题:
为什么我们使用firebase存储规则(如果request.auth!= null;)如果ref.getDownloadURL ()即使在私人浏览器中也可以访问并且它不需要经过身份验证的用户,但是图像的url(没有令牌)是即使您是经过 Firebase 身份验证的用户也无法访问?
【问题讨论】:
标签: firebase flutter firebase-authentication firebase-storage firebase-security