Skip to content

Commit b5b616f

Browse files
committed
fix: Android errors
1 parent 50a51b7 commit b5b616f

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

  • packages/firebase_database/firebase_database/android/src/main/kotlin/io/flutter/plugins/firebase/database

packages/firebase_database/firebase_database/android/src/main/kotlin/io/flutter/plugins/firebase/database/FirebaseDatabasePlugin.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,16 @@ class FirebaseDatabasePlugin :
637637
try {
638638
// Call the Flutter transaction handler
639639
val flutterApi = FirebaseDatabaseFlutterApi(messenger)
640-
val handlerResult = Tasks.await(flutterApi.callTransactionHandler(request.transactionKey, mutableData.value))
640+
val taskCompletionSource = TaskCompletionSource<TransactionHandlerResult>()
641+
642+
flutterApi.callTransactionHandler(request.transactionKey, mutableData.value) { result ->
643+
when (result) {
644+
is Result.success -> taskCompletionSource.setResult(result.getOrNull()!!)
645+
is Result.failure -> taskCompletionSource.setException(result.exceptionOrNull()!!)
646+
}
647+
}
648+
649+
val handlerResult = Tasks.await(taskCompletionSource.task)
641650

642651
if (handlerResult.aborted || handlerResult.exception) {
643652
return com.google.firebase.database.Transaction.abort()

0 commit comments

Comments
 (0)