Задачи, когда AllSuccess возвращает Uri вместо List - PullRequest
0 голосов
/ 21 декабря 2018

Журнал показывает, что результатом является список.Однако я не могу ни получить доступ к списку через индекс, ни преобразовать его в список

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]

1 Ответ

0 голосов
/ 21 декабря 2018

Измените эту строку

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

на

Tasks.whenAllSuccess<Uri>(tasks)

, и это решило проблему.Сама функция уже привела результат в список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...