gpt4 book ai didi

android - Firebase Storage 的 OnSuccessListener 回调未调用

转载 作者:搜寻专家 更新时间:2023-11-01 09:34:43 24 4
gpt4 key购买 nike

通过 Firebase 存储上传文件时,不会调用 onSuccess 方法。

我目前正在运行带有“com.google.firebase:firebase-storage:10.2.6”的 Android Studio 3.0 Canary 2。

fun uploadImage(pathToImage: String, downloadCallback: FirebaseCallback<String?>) {
val file = Uri.fromFile(File(pathToImage))
val ref = mStorRef.child("images/"+file.lastPathSegment)

ref.putFile(file).addOnSuccessListener {
object : OnSuccessListener<UploadTask.TaskSnapshot> {
override fun onSuccess(taskSnapshot: UploadTask.TaskSnapshot?) {
val url = taskSnapshot?.downloadUrl
Log.d("FirebaseManager", "Upload Successful")
downloadCallback.callback(url.toString())
}
}
}
}

最佳答案

通过使用 {},您通过 SAM conversion 将 lambda 作为监听器传递.在这个 lambda 中,您定义了成功时应该发生什么:您正在创建一个从未使用过的 object。要将 object 作为监听器传递,请使用 ():

ref.putFile(file).addOnSuccessListener (
object : OnSuccessListener<UploadTask.TaskSnapshot> {
override fun onSuccess(taskSnapshot: UploadTask.TaskSnapshot?) {
val url = taskSnapshot?.downloadUrl
Log.d("FirebaseManager", "Upload Successful")
downloadCallback.callback(url.toString())
}
}
)

或者只进行 SAM 转换,而不显式创建对象:

ref.putFile(file).addOnSuccessListener { taskSnapshot ->
val url = taskSnapshot?.downloadUrl
Log.d("FirebaseManager", "Upload Successful")
downloadCallback.callback(url.toString())
}

关于android - Firebase Storage 的 OnSuccessListener 回调未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44317631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com