当通过Firebase存储上传文件时,onSuccess方法不会调用。
我目前正在使用'com.google.firebase:firebase-storage:10.2.6'.运行AndroidStudio3.0Canary2
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())
}
}
}
}发布于 2017-06-01 21:57:45
通过使用{},您可以通过山姆转换作为侦听器传入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转换,而不显式地创建object:
ref.putFile(file).addOnSuccessListener { taskSnapshot ->
val url = taskSnapshot?.downloadUrl
Log.d("FirebaseManager", "Upload Successful")
downloadCallback.callback(url.toString())
}https://stackoverflow.com/questions/44317631
复制相似问题