angular - Firebase 云存储:权限被拒绝。检索 downloadURL 时无法执行此操作 firebase
问题描述
我有一个功能可以成功地将图像上传到我的云存储桶。
使用另一个功能,我想获取图像的 URL 以在我的页面上显示它(使用<img.../>
)
getImageUrl(id: string) {
return this.storageRef.child('X/' + id ).getDownloadURL();
但是当我这样做时..我得到一个“无效”的 URL,当我复制 URL 并转到它时,我收到以下消息:
{
"error": {
"code": 403,
"message": "Permission denied. Could not perform this operation"
}
}
我在某处读到这可能是因为 URL 中没有附加令牌,但我该如何启用它呢?
解决方案
在过去的几天里,我一直在尝试理解 Firebase 存储规则,但我不知道为什么,但是当我将编写和阅读的规则分开时,例如:
allow write: if request.auth != null && request.resource.size < 3 * 1024 * 1024;
allow read: if true;
代码运行良好,我可以使用 getDownloadURL() 进行读写,但是当我像这样一起使用它们时:
allow read, write: if request.auth != null && request.resource.size < 3 * 1024 * 1024;
我得到了和你一样的错误:
{
"error": {
"code": 403,
"message": "Permission denied. Could not perform this operation"
}
}
一起使用它们时我可以写,但是当我尝试使用 getDownloadURL() 读取文件时,问题就出现了。也许您可以尝试像我提到的那样分离规则,看看它是否有效。我希望它能解决你的问题。另外,不要忘记规则在设置后 5 分钟后 生效。祝你好运。
推荐阅读
- javascript - 不和谐.js | 无法读取未定义的属性“setParent”| 类别创建
- python - 随机森林图像中决策树的数量和总颜色
- python - 如何使用机器人命令回显句子 [discord.py]
- c++ - 未完成的 WEBKITGTK 构建
- sql - 提高性能的 Oracle SQL 新手
- linux - 循环遍历文件路径以检查目录是否存在
- javascript - JS Switch 语句被忽略
- java - org.apache.kafka.common.KafkaException:类 SaleRequestFactory 不是 org.apache.kafka.common.serialization.Serializer 的实例
- python - 使用 lambda 函数应用嵌套字典迭代
- c++ - 添加到地图的类中的互斥锁不起作用c ++