Android 如何在firebase resize images extension完成后获取缩略图的下载url

Android 如何在firebase resize images extension完成后获取缩略图的下载url,android,firebase-storage,firebase-extensions,Android,Firebase Storage,Firebase Extensions,最近推出的firebase扩展“Image resize”会在图片上传到存储桶后生成缩略图 扩展完成后,如何获取此缩略图图像的下载url final StorageReference storageRef = FirebaseStorage.instance.ref().child(fileName); final StorageUploadTask uploadTask = storageRef.putFile( File(path), );

最近推出的firebase扩展“Image resize”会在图片上传到存储桶后生成缩略图

扩展完成后,如何获取此缩略图图像的下载url

final StorageReference storageRef =
        FirebaseStorage.instance.ref().child(fileName);

    final StorageUploadTask uploadTask = storageRef.putFile(
      File(path),
    );

    final StorageTaskSnapshot downloadUrl = (await uploadTask.onComplete);

    final String url = (await downloadUrl.ref.getDownloadURL()); //This will give me the download url of file before resize

// ??How do I the download url of resized image that gets stored in fileName/thumbnails folder


将图像文件上载到指定的
云存储桶时,此扩展名:

  • 创建具有指定尺寸的已调整大小的图像
  • 将调整大小的图像存储在与原始上载图像相同的存储桶中
  • 使用与原始上载图像相同的名称命名已调整大小的图像,但以指定的宽度和高度作为后缀
  • 例如,如果在此处指定拇指路径,并将图像上载到/images/original.jpg,则调整大小的图像将存储在/images/thumbs/original_200x200.jpg

    因此,您的文件的url将是-

     String name = url.substring(url.lastIndexOf("/")+1,url.indexOf("."));
     String urlStr = "thumbnails/"+name+"_"+width+"x"+height+url.substring(url.indexOf("."),url.length());
     storageRef.child(url.replace(name,urlStr)).getDownloadUrl()
         .addOnSuccessListener(new OnSuccessListener<Uri>() {
            @Override
            public void onSuccess(Uri uri) {
               // Got the download URL for 'users/me/profile.png'
         }})  
    
    String name=url.substring(url.lastIndexOf(“/”)+1,url.indexOf(“.”);
    字符串urlStr=“thumbnails/”+name+“”+width+“x”+height+url.substring(url.indexOf(“.”),url.length());
    storageRef.child(url.replace(name,urlStr)).getDownloadUrl()
    .addOnSuccessListener(新的OnSuccessListener(){
    @凌驾
    成功时的公共无效(Uri){
    //已获取“users/me/profile.png”的下载URL
    }})  
    
    谢谢您的帮助。但是,我没有看到getDownloadURL的“addOnSuccessListener”。谢谢。不过,这似乎不是获取下载URL的正确方法。有一个云函数被触发来创建缩略图。客户端代码不知道云函数何时完成。因此,当调用
    downloadURL=await ref.getDownloadURL()
    时,文件将不存在。创建缩略图后需要下载URL。我想我们需要另一个云函数来实现这一点。正如Vinayakaram指出的,在扩展运行后,这不会给出url。我也一直在寻找答案,但我唯一能想到的是存储新的bucket位置(因为您可以知道),然后在客户端上使用ref.getDownloadURL(),正如这里所指出的。但是,在我看来,这在一开始就有一个缩略图的意义上是有点凹痕的。看起来确实有必要使用另一个云函数(这使得扩展毫无意义)。由于无法导出已调整大小图像的公共URL,因此该扩展对使用公共URL加载图像的任何人都是无用的。该函数仍然是无用的。。。2020年4月