问题
i have checked available resources and yet either i get error or at best i get com.google.android.gms.tasks.zzu@5f9a842
as the uri
Following this latest google doc here, i still got the com.gms
as url
here is my code
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}")
...
Terminal: I/System.out: Task: com.google.android.gms.tasks.zzu@4298dc1(HTTPLog)-Static: isSBSettingEnabled false
pls, any help is appreciated...
回答1:
You're logging the wrong value. Instead of this:
print("Task: ${downloadUrl}")
Log this:
print("Task: ${downloadUrl.result.toString()}")
Your downloadUrl
variable is not correctly named. It's a Task, not a URL. It might be clearer like this:
val task = it.result
val uri = task.result
val uriAsString = uri.toString()
回答2:
Solved !!!
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
returns aTask
correct it by adding an addOnSuccessListener
so the correct code is
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")
...
}
来源:https://stackoverflow.com/questions/61050721/download-url-is-getting-as-com-google-android-gms-tasks-zzu441942b-firebase-s