首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Firestore上传并调整图像大小,并获取压缩图像下载url

Firestore上传并调整图像大小,并获取压缩图像下载url
EN

Stack Overflow用户
提问于 2021-05-06 05:55:05
回答 1查看 45关注 0票数 1

我安装了Resize Images扩展,它正在工作。在我的应用中,我有:

代码语言:javascript
运行
复制
const storageRef = firebase.storage().ref();
const imagesRef = storageRef.child(`users/${user?.id}/images`);
const imageRef = imagesRef.child(`${timestamp}.jpg`);
imageRef.put(blob).then((snapshot) => {
  snapshot.ref
    .getDownloadURL()
    .then((image_url) => {

返回的image_url是上传的原始图片,而不是调整大小的图片。

如何获取调整大小的图像的下载url?

我尝试将以下内容添加到响应中:

代码语言:javascript
运行
复制
imagesRef
  .child(`${timestamp}_1000x1000.jpg`)
  .getDownloadURL()
  .then((resized_image_url) => {
    console.log('resized_image_url', resized_image_url);
  });

但它当然不能工作,因为我们不知道压缩图像什么时候会准备好。做一些延迟循环直到我得到一个成功的响应显然是浪费的。

我在想的一件事(但不是解决办法)是,既然我在成功调整大小时删除了原始图像,也许我可以以某种方式收听它,当删除时,获取我上面建议的调整大小的图像?

那我该怎么办呢?

EN

回答 1

Stack Overflow用户

发布于 2021-05-06 08:28:16

您需要通过检查是否超时( exists )来测试上传是否已经完成,这可以在从存储中获取文档引用的循环或超时中完成。

代码语言:javascript
运行
复制
const storageFile = bucket.file('path/to/compressed/image.jpg');
storageFile
  .exists()
  .then((exists) => {
        if (exists[0]) {
          console.log("File exists");
        } else {
          console.log("File does not exist");
        }
     })

这是firebase扩展的一个警告,我发现依赖一个专用的云函数更合适,我们可以在完成时调用它来返回值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67409210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档