您好,我想获取downloadUrl,但出现错误我尝试过一些类似这样的方法
var firebaseURL =p0?.uploadSessionUri.toString()
结果为url,但是如果我打开此URL,则会收到此错误Invalid request. X-Goog-Upload-Command header is missing.
(我是科特林的新人)
uploadTo.addOnSuccessListener (object :OnSuccessListener<UploadTask.TaskSnapshot>{
override fun onSuccess(p0: UploadTask.TaskSnapshot?) {
var firebaseURL =p0.downloadUrl // i got error in this line
FirebaseDatabase.getInstance().reference
.child("Users")
.child(FirebaseAuth.getInstance().currentUser?.uid!!)
.child("imagurl")
.setValue(firebaseURL.toString())
}
})
val ref = storageRef.child("images/mountains.jpg")
uploadTask = ref.putFile(file)
val urlTask = uploadTask.continueWithTask { task ->
if (!task.isSuccessful) {
task.exception?.let {
throw it
}
}
ref.downloadUrl
}.addOnCompleteListener { task ->
if (task.isSuccessful) {
val downloadUri = task.result
} else {
// Handle failures
// ...
}
}
这里发生的是:正在使用
uploadTask
上传文件。- 完成后,该继续作为回调添加到该任务中
- ref.downloadUrl返回另一个任务以获取URL。
- 另一个回调已添加到链中以处理获取的URL。
事实是此API的设计不是很好。该方法以“ get”开头,但实际上不是属性获取器。