Firebase存储的DownloadUrl不起作用 [英] DownloadUrl for firebase storage not working

查看:79
本文介绍了Firebase存储的DownloadUrl不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试查找许多stackoverflow问题, 和许多其他地方,但找不到可行的方法.

I tried finding on a lot of stackoverflow questions, and many other places, but could not find a working method.

我正在将图片上传到Firebase存储,并且在上传时我想要该图片/文档的下载链接.

I am uploading a picture to firebase storage, and on upload I want a download link for that picture/document.

taskSnapshot.getDownloadUrl()现在已弃用, 因此他们提到在Firebase存储参考上使用getDownloadUrl,在taskSnapshot上使用getResult,但是都返回一些行话,而我无法获得正确的下载网址.

taskSnapshot.getDownloadUrl() is now deprecated, so they have mentioned to use getDownloadUrl on the Firebase Storage Reference, or getResult on the taskSnapshot, but both return some jargon and I am not able to get a proper download url.

btnUploadImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(!ImageUri.toString().trim().equals(""))
                {

                    final StorageReference imageRef = mFirebaseStorage.child("some.jpg");
                    imageRef.putFile(ImageUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
                            Toast.makeText(MainActivity.this, "Done", Toast.LENGTH_SHORT).show();
                            Log.d("UploadSuccess", ""+task.getResult()+"\n"+mFirebaseStorage.getDownloadUrl());
                        }
                    });

                }else
                {
                    Toast.makeText(MainActivity.this, "Please Select An Image.", Toast.LENGTH_SHORT).show();
                }
            }
        });

这给了我一个日志输出:

D/上传成功: com.google.firebase.storage.UploadTask$TaskSnapshot@fff6f13 com.google.android.gms.tasks.zzu@c781349

D/UploadSuccess: com.google.firebase.storage.UploadTask$TaskSnapshot@fff6f13 com.google.android.gms.tasks.zzu@c781349

以及我正在使用的firebase/storage的版本:

and the version of firebase/storage i am using :

implementation 'com.google.firebase:firebase-database:16.1.0'
implementation 'com.google.firebase:firebase-storage:16.1.0'

推荐答案

尝试一下

val ref = mStorageReference?.child("some.jpg")
        val  uploadTask = ref?.putFile(Uri.fromFile(File(mImagePath)))

        uploadTask?.continueWithTask(Continuation<UploadTask.TaskSnapshot, Task<Uri>>
        { task ->
            if (!task.isSuccessful) {
                task.exception?.let {
                    throw it
                }
            }
            return@Continuation ref.downloadUrl
        })?.addOnCompleteListener { task ->
            if (task.isSuccessful) {
                val downloadUri = task.result
                mTempDatabaseReference?.child("image")?.setValue(downloadUri.toString())
            } else {
                // Handle failures
                // ...
            }
        }

这篇关于Firebase存储的DownloadUrl不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆