Skip to content

Commit add410d

Browse files
committed
fix: make Firebase initialization synchronous to prevent race condition
FirebaseInitializer was launching Firebase.initialize() on Dispatchers.IO, but UserManager accesses Firebase.messaging.token synchronously during Hilt injection in Application.onCreate(). This race causes IllegalStateException when the IO coroutine hasn't completed before injection runs. Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent 11b54ba commit add410d

1 file changed

Lines changed: 1 addition & 6 deletions

File tree

apps/flipcash/app/src/main/kotlin/com/flipcash/app/internal/startup/FirebaseInitializer.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,10 @@ import android.content.Context
44
import androidx.startup.Initializer
55
import com.google.firebase.Firebase
66
import com.google.firebase.initialize
7-
import kotlinx.coroutines.CoroutineScope
8-
import kotlinx.coroutines.Dispatchers
9-
import kotlinx.coroutines.launch
107

118
class FirebaseInitializer: Initializer<Unit> {
129
override fun create(context: Context) {
13-
CoroutineScope(Dispatchers.IO).launch {
14-
Firebase.initialize(context)
15-
}
10+
Firebase.initialize(context)
1611
}
1712

1813
override fun dependencies(): List<Class<out Initializer<*>?>?> {

0 commit comments

Comments
 (0)