Firebase Storage 的 OnSuccessListener 回调未调用
Firebase Storage's OnSuccessListener callback not calling
通过 Firebase 存储上传文件时,未调用 onSuccess 方法。
我目前 运行 Android Studio 3.0 Canary 2,'com.google.firebase:firebase-storage:10.2.6'。
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 转换,而不显式创建 object
:
ref.putFile(file).addOnSuccessListener { taskSnapshot ->
val url = taskSnapshot?.downloadUrl
Log.d("FirebaseManager", "Upload Successful")
downloadCallback.callback(url.toString())
}
通过 Firebase 存储上传文件时,未调用 onSuccess 方法。
我目前 运行 Android Studio 3.0 Canary 2,'com.google.firebase:firebase-storage:10.2.6'。
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 转换,而不显式创建 object
:
ref.putFile(file).addOnSuccessListener { taskSnapshot ->
val url = taskSnapshot?.downloadUrl
Log.d("FirebaseManager", "Upload Successful")
downloadCallback.callback(url.toString())
}