下载url正在变为com.google.android.gms.tasks.zzu@441942b:Firebase存储



我已经检查了可用资源,但要么出现错误,要么最多得到com.google.android.gms.tasks.zzu@5f9a842作为uri

在这个最新的谷歌文档之后,我仍然得到了com.gms作为url

这是我的代码

val fileRef = storageProfilePicRef!!.child(firebaseUser.uid + "jpg")
val uploadTask = fileRef.putFile(imageUri!!)
uploadTask.continueWith {
if (!it.isSuccessful) {
pd.dismiss()
it.exception?.let { t ->
throw t
}
}
fileRef.downloadUrl
}.addOnCompleteListener {
if (it.isSuccessful) {
val downloadUrl = it.result
myUri = downloadUrl.toString()
print("Task: ${downloadUrl}")
...

终端:I/System.out: Task: com.google.android.gms.tasks.zzu@4298dc1(HTTPLog)-Static: isSBSettingEnabled false

您记录的值错误。取而代之的是:

print("Task: ${downloadUrl}")

记录此:

print("Task: ${downloadUrl.result.toString()}")

downloadUrl变量的名称不正确。这是一个任务,而不是URL。它可能更清楚如下:

val task = it.result
val uri = task.result
val uriAsString = uri.toString()

已解决

val fileRef = storageProfilePicRef!!.child(firebaseUser.uid + "jpg")
val uploadTask = fileRef.putFile(imageUri!!)
uploadTask.continueWith {
if (!it.isSuccessful) {
pd.dismiss()
it.exception?.let { t ->
throw t
}
}
fileRef.downloadUrl
}.addOnCompleteListener {
if (it.isSuccessful) {
val downloadUrl = it.result //Here returns a task..
myUri = downloadUrl.toString()
print("Task: ${downloadUrl}")
...

val downloadurl = it.result返回Task

通过添加addOnSuccessListener进行更正

因此正确的代码是

val uploadTask = fileRef.putFile(imageUri!!)
uploadTask.continueWith {
if (!it.isSuccessful) {
pd.dismiss()
it.exception?.let { t ->
throw t
}
}
fileRef.downloadUrl
}.addOnCompleteListener {
if (it.isSuccessful) {
it.result!!.addOnSuccessListener{task ->
myUri = task.toString()
print("$myUri")
...
}

我解决了这个问题你应该addOnSuccessListener返回uri->单位未任务

}.addOnCompleteListener {
if (it.isSuccessful) {
it.result!!.addOnSuccessListener{uri->unit ->
myUri = task.toString()
print("$myUri")
...
}

相关内容

最新更新