提问人:Edip C. 提问时间:9/24/2023 最后编辑:Edip C. 更新时间:10/19/2023 访问量:28
Firebase Storage OnFailure 不适用于 await。为什么?
Firebase Storage OnFailure Not Working with await. why?
问:
我使用firebase存储来下载文件,如下所示。 在 succsess 上工作并下载数据。但是当出现错误时,onFailurelistener 不起作用。例如,如果我写错了文件路径,则不会发生任何事情,我的应用程序会冻结。如何使 onfailure 起作用。
suspend fun readFireBaseFile(context: Context): String {
var data: String = "will come from firebase"
val maxBytes = 3 * 1024 * 1024L
Firebase.initialize(context)
val ref = Firebase.storage.reference.child("/files/myFile.json")
val mytask = ref.getBytes(maxBytes)
mytask.addOnFailureListener() {
println("ERROR") // not working !!!!!!!!!!!!!!
}
mytask.addOnSuccessListener {
println("SUCCSESS") // Working
}
val byteData = mytask.await()
data = String(byteData)
return data
}
我想处理错误,豁免......
答:
0赞
Rosário Pereira Fernandes
10/19/2023
#1
使用时,您不再需要手动添加这些侦听器,因为该函数会抛出异常。所以你的代码是:await()
catch
suspend fun readFireBaseFile(context: Context): String {
var data: String = "will come from firebase"
val maxBytes = 3 * 1024 * 1024L
Firebase.initialize(context)
val ref = Firebase.storage.reference.child("/files/myFile.json")
val mytask = ref.getBytes(maxBytes)
try {
val byteData = mytask.await()
println("SUCCSESS")
data = String(byteData)
} catch (e: Exception) {
println("ERROR")
}
return data
}
评论