- 我可以从原始上传的文件下载网址
- 我无法从图像调整大小扩展创建的文件中下载 url。
//making a ref beforehand
const ref = db.collection("impressions").doc().id;
//upload the original file
const bucket = await firebase.storage().ref("impressions/" + ref).put(image);
//this works but I do not need it
const downloadUrl = await firebase.storage().ref("impressions/" + ref).getDownloadURL();
//trying to retrieve the downloadUrl from the files that are most likely still in the process of being created by the image resize extention?
//the ref's are correct
const downloadUrl_image = await firebase.storage().ref("impressions/" + ref + "_1000x1000").getDownloadURL();
const downloadUrl_thumb = await firebase.storage().ref("impressions/" + ref + "_50x50").getDownloadURL();
如何从调整大小的图像中获取下载网址?有我可以听的活动吗?还是我需要制作自己的功能?
谢谢你的帮助,
马蒂亚斯
Firebase 扩展非常棒,因为它们允许您快速部署标准业务逻辑,但它们可能在配置选项方面受到限制。
特别是,您将无法立即获得调整大小的图像的下载 URL。
我可以想到两种可能的方法:
1. 在创建调整大小的图像时触发云函数
在扩展配置期间,您可以定义存储调整大小的图像的路径。
帮助说:
例如,如果您指定路径
thumbs
并上传 图像到/images/original.jpg
,则调整大小的图像存储在/images/thumbs/original_200x200.jpg
.
因此,您预先知道路径的结构和调整大小的图像的名称。因此,您可以在创建这些文件时触发云函数,请参阅文档。例如,您可以将图像的下载 URL 存储在 Firestore 文档中,其 ID 与调整大小的图像文件名(或原始文件名(相同
2.编写自己的图像大小调整云功能
官方云函数示例集合中有一个示例,其功能与扩展完全相同。你可以在Github上找到它。您还可以查看扩展本身的代码。
这样,您就可以完全控制云函数逻辑。