android - 无法获取上传文件的 URL
问题描述
我正在尝试获取上传文件的 URL,但我得到了这个:com.google.android.gms.tasks.zzu@a12a0cb
或类似的东西。
这是我尝试过的代码(kotlin):
val uid = UUID.randomUUID().toString()
val storageRef = FirebaseStorage.getInstance().reference.child("content/$uid/$uid.jpg")
storageRef.putFile(file).addOnSuccessListener { taskSnapShot ->
val downloadUrl = storageRef.downloadUrl
FirebaseDatabase.getInstance().reference.child("Photos").child(date).push().setValue(downloadUrl)
}
但它不起作用。我还尝试了以下代码:
val uid = UUID.randomUUID().toString()
val storageRef = FirebaseStorage.getInstance().reference.child("content/$uid/$uid.jpg")
storageRef.putFile(file).addOnSuccessListener (
object : OnSuccessListener<UploadTask.TaskSnapshot> {
override fun onSuccess(taskSnapshot: UploadTask.TaskSnapshot?) {
val downloadUrl = storageRef.downloadUrl
FirebaseDatabase.getInstance().reference.child("Photos").child(date).push().setValue(downloadUrl)
}
}
)
但结果是一样的。我仍然被com.google.android.gms.tasks.zzu@a12a0cb
插入到我的数据库中,而不是 URL。我做错了什么?我花了一整天的时间试图弄清楚,请帮忙。
解决方案
我有同样的问题。我刚刚解决了。我不能确切地说为什么它不能与其他语法一起使用,但我这样做的结果是:(Firebase 实现版本:16.0.1 / Kotlin)
mReference.putFile (uri) .addOnFailureListener {
// failure
} .addOnSuccessListener () {taskSnapshot ->
// success
mReference.downloadUrl.addOnCompleteListener () {taskSnapshot ->
var url = taskSnapshot.result
println ("url =" + url.toString ())
}
}
推荐阅读
- python - 从 docker 镜像运行 jupyter notebook 的问题
- javascript - 有没有办法添加
- 类似元素 without using Shadow DOM? Trying to adhere to the DRY principal, I wanted to create a custom component based on a
<template>
. The code looked something like this (please forgive the corner- reactjs - Redux:在 mapDispatchToProps 中传递的函数“不是函数”
- azure-devops - 按团队限制 Azure DevOps Boards 权限
- database - Building a permissions table with Prisma 2 and PostgreSQL to authorize users based on permission level?
- python - Requests doesnt retrieve the site after post request
- amazon-web-services - AWS WebSocket断开路由不起作用
- android - Bitmap does not scale accurately when screen size changes
- java - 删除一个链接如何从链表中删除一个节点?
- python - 如果列包含字符串,则返回列表