在我的应用程序中,我的用户文档具有与他们相关联的头像图像,该图像保存在云存储中。目前,我在用户对象中有一个字段引用了其图像的下载URL。只是想知道这是否是正确/最佳的方法。
没有真正的[[最佳方法来实现存储在云存储中的头像图像之间的链接。
您可以很好地完成您的操作(在用户对象中有一个引用下载URL的字段”)。存储在公用文件夹中
在默认存储区下,使用用户UID命名化身图像。然后,您可以使用具有以下结构的链接直接下载图像(或将其包含在img src
HTML标记中)https://firebasestorage.googleapis.com/v0/b/<yourprojectname>.appspot.com/o/users%2F38r174prM9aTx4JAdcm50r3V0Hq2.png?alt=media
其中users
是文件夹名称
并且38r174prM9aTx4JAdcm50r3V0Hq2.png
是图像文件名。
请注意,/
被编码为%2F
(标准URL编码)
然后您将像下面这样设置您的云存储安全规则:
service firebase.storage {
match /b/{bucket}/o {
match /privateFiles { //All other files that are not under users
match /{allprivateFiles=**} {
allow read: if false;
}
}
match /users {
match /{allImages=**} {
allow read;
}
}
}
}