AllSuccess 返回 Uri 而不是 List 时的任务



日志显示结果是一个列表。但是,我既无法通过索引访问列表,也无法将其转换为列表

Tasks.whenAllSuccess<List<Uri>>(tasks).addOnCompleteListener { tasks->
  info("Result is ${tasks.result}")
  val uri=tasks.result!![0]
  info("Result head is $uri")
  db.child("users").child(userId).child("placemarks").child(key).setValue(placemark){err,ref->
    placemarks.add(placemark)
    callback
  }
}

下面是日志和错误消息。当我尝试通过索引访问时出现错误消息:

 java.lang.ClassCastException: android.net.Uri$StringUri cannot be cast to java.util.List
    at org.wit.placemark.models.firebase.PlacemarkFireStore$create$3.onComplete(PlacemarkFireStore.kt:54)
    at com.google.android.gms.tasks.zzj.run(Unknown Source:4)
    at android.os.Handler.handleCallback(Handler.java:809)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:166)
    at android.app.ActivityThread.main(ActivityThread.java:7377)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:469)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:963)

日志:

I/PlacemarkFireStore: Result is [https://firebasestorage.googleapis.com/v0/b/placemark-1540061020843.appspot.com/o/oGJ7cZd7qXXbOEvKaVLthpQx9qL2%2FIMG-20181220-WA0012.jpg?alt=media&token=65f0c998-8d9f-47f9-ae49-30c59a934fb1, https://firebasestorage.googleapis.com/v0/b/placemark-1540061020843.appspot.com/o/oGJ7cZd7qXXbOEvKaVLthpQx9qL2%2FIMG-20181219-WA0009.jpg?alt=media&token=0a91873e-61a6-46d5-aa73-a343dc442848, https://firebasestorage.googleapis.com/v0/b/placemark-1540061020843.appspot.com/o/oGJ7cZd7qXXbOEvKaVLthpQx9qL2%2FIMG-20181219-WA0007.jpg?alt=media&token=de2b8c35-597e-4b73-a089-ad2c4e4248f9]

更改此行

Tasks.whenAllSuccess<List<Uri>>(tasks)

Tasks.whenAllSuccess<Uri>(tasks)

它解决了这个问题。函数本身已将结果强制转换为 List。

最新更新