Kulwinder Singh
05/16/2019, 11:23 AMlouiscad
05/16/2019, 11:25 AMKulwinder Singh
05/16/2019, 11:27 AMaddOnSuccessListeneer
is called twice on some deviceslouiscad
05/16/2019, 11:29 AMKulwinder Singh
05/16/2019, 11:30 AMaddOnSuccessListener
is called twice on some deviceslouiscad
05/16/2019, 11:33 AMTask
on which you use the await()
extension function.Kulwinder Singh
05/16/2019, 11:37 AMget()
something like this colletion.whereEqualTo("level", level).get(source).await()
louiscad
05/16/2019, 11:37 AMKulwinder Singh
05/16/2019, 11:40 AMFatal Exception: java.lang.IllegalStateException: Already resumed, but proposed with update kotlin.Unit
kotlinx.coroutines.CancellableContinuationImpl.alreadyResumedError (CancellableContinuationImpl.java:244)
kotlinx.coroutines.CancellableContinuationImpl.resumeImpl (CancellableContinuationImpl.java:239)
kotlinx.coroutines.CancellableContinuationImpl.resumeWith (CancellableContinuationImpl.java:168)
MyClass$loadSomethingSuspended$2$1.onLoaded (MyClassKt.java:94)
louiscad
05/16/2019, 11:52 AMKulwinder Singh
05/16/2019, 11:58 AMtry/catch
suspend fun <T> Task<T>.await(): T {
var continuation: CancellableContinuation<T>? = null
addOnSuccessListener {
continuation?.resume(it)
continuation = null
}.addOnFailureListener {
continuation?.resumeWithException(it)
continuation = null
}
return suspendCancellableCoroutine { continuation = it }
}
louiscad
05/16/2019, 12:14 PM