Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin-获取Firebase图像下载URL返回“;com.google.android.gms.tasks.zzu“;_Kotlin_Firebase Storage - Fatal编程技术网

Kotlin-获取Firebase图像下载URL返回“;com.google.android.gms.tasks.zzu“;

Kotlin-获取Firebase图像下载URL返回“;com.google.android.gms.tasks.zzu“;,kotlin,firebase-storage,Kotlin,Firebase Storage,我正试图通过使用压缩程序库创建两个文件夹,将图像上载到实时Firebase数据库,并且需要像messenger一样显示图像,并使用用户名,但由于url问题,我无法显示图像 var filePath = mStorageRef!!.child("chat_profile_images") .child(userId + ".jpg") //Create another directory for thumbimage

我正试图通过使用压缩程序库创建两个文件夹,将图像上载到实时Firebase数据库,并且需要像messenger一样显示图像,并使用用户名,但由于url问题,我无法显示图像

            var filePath = mStorageRef!!.child("chat_profile_images")
                .child(userId + ".jpg")

            //Create another directory for thumbimages ( smaller, compressed images)
            var thumbFilePath = mStorageRef!!.child("chat_profile_images")
                .child("thumbs")
                .child(userId + ".jpg")


            filePath.putFile(resultUri)
                .addOnCompleteListener{
                        task: Task<UploadTask.TaskSnapshot> ->
                    if (task.isSuccessful) {

                        //Let's get the pic url
                        var donwloadUrl = task.result?.storage?.downloadUrl.toString()

                        Log.d(TAG, "Profilepic link: $donwloadUrl")

                        //Upload Task
                        var uploadTask: UploadTask = thumbFilePath
                            .putBytes(thumbByteArray)

                        uploadTask.addOnCompleteListener{
                                task: Task<UploadTask.TaskSnapshot> ->
                            var thumbUrl = task.getResult()?.storage?.downloadUrl.toString()

                            Log.d(TAG, "Profilepic link: $thumbUrl")
但这两个值都是“com.google.android.gms.tasks.zzu”

我也试着改变

task.result.sessionurl.downloadUrl.toString

对于这一个,我得到了downloadUrl,但不是我问题的完整解决方案,因为我仍然无法显示图像,我需要得到thumbUrl downloadUrl

您与中的误解完全相同,但它是在java中。你应该了解如何获得作品。从链接的API文档中可以看到,它不是一个属性获取程序,实际上是一个返回
任务的方法,该任务跟踪所需URL的异步获取,就像上载任务一样:

filePath.downloadUrl
.addOnSuccessListener { urlTask ->
    // download URL is available here
    val url = urlTask.result.toString()
}.addOnFailureListener { e ->
    // Handle any errors
}

这只有在上传完全完成后才有效。

上传后获取下载链接的正确方法

filePath.downloadUrl
.addOnSuccessListener { urlTask ->
    // download URL is available here
    val url = urlTask.result.toString()
}.addOnFailureListener { e ->
    // Handle any errors
}