Nach dem Upgrade von Firebase SDK erhalte ich den Fehler: Es gibt mehrere Datenspeicher für dieselbe Datei: DataStore/AQ
Posted: 25 Aug 2025, 01:49
Ich habe einen Laufzeit -Umgebungsumschalter, in dem wir die Standard -Firebase -App löschen und neu initialisieren, um auf die korrekte Firebase -App basierend auf der Umgebung zu verweisen. Auf diese Weise können wir für jede Umgebung separate Analysen und Crashlytics für dieselbe App < /p>
Ich habe meine Firebase -SDKs vor einigen Tagen auf die neuesten Versionen aktualisiert. Seitdem stürzt unser Umgebungsumschalter mit diesem Fehler ab:
java.lang.IilleGalStateException: Es gibt mehrere DataStores für dieselbe Datei: Dateien/DataStore/AQS/SessionConFigsDatastore.data. Sie sollten Ihren Datenspeicher entweder als Singleton beibehalten oder bestätigen, dass keine zwei Datenspeicher in derselben Datei aktiv sind (indem Sie bestätigen, dass das Zielfernrohr abgebrochen wird). suspend fun reset() {
FirebaseApp.getApps(context).forEach {
it.delete()
}
init()
}
suspend fun init() {
val environment = environmentRepository.getEnvironment()
val configFileName = environment.configFileName
val inputStream = context.assets.open(configFileName)
val jsonString = inputStream.bufferedReader().use { it.readText() }
val firebaseOptionsJsonFile = gson.fromJson(jsonString, FirebaseJsonFileOptions::class.java)
val firebaseOptions = firebaseOptionsJsonFile.mapToFirebaseOptions()
val isNotAlreadyInitialized =
FirebaseApp.getApps(context).none { it.name == DEFAULT_APP_NAME }
if (isNotAlreadyInitialized) {
FirebaseApp.initializeApp(context, firebaseOptions)
Timber.d("$TAG: Firebase initialized with environment: $environment")
} else {
Timber.d("$TAG: FirebaseApp already initialized with environment: $environment")
}
}
< /code>
Ich habe versucht, mehrere Apps festzulegen, anstatt die Standard -App nachzubilden. Ich hatte jedoch dieser Einschränkung: < /p>
Hinweis: Auf Android- und Apple -Plattformen werden die Analysen nur für die Standard -App protokolliert. Auf diese Weise stellen wir uns nicht dem DataSastore -Absturz gegenüber
Ich habe meine Firebase -SDKs vor einigen Tagen auf die neuesten Versionen aktualisiert. Seitdem stürzt unser Umgebungsumschalter mit diesem Fehler ab:
java.lang.IilleGalStateException: Es gibt mehrere DataStores für dieselbe Datei: Dateien/DataStore/AQS/SessionConFigsDatastore.data. Sie sollten Ihren Datenspeicher entweder als Singleton beibehalten oder bestätigen, dass keine zwei Datenspeicher in derselben Datei aktiv sind (indem Sie bestätigen, dass das Zielfernrohr abgebrochen wird). suspend fun reset() {
FirebaseApp.getApps(context).forEach {
it.delete()
}
init()
}
suspend fun init() {
val environment = environmentRepository.getEnvironment()
val configFileName = environment.configFileName
val inputStream = context.assets.open(configFileName)
val jsonString = inputStream.bufferedReader().use { it.readText() }
val firebaseOptionsJsonFile = gson.fromJson(jsonString, FirebaseJsonFileOptions::class.java)
val firebaseOptions = firebaseOptionsJsonFile.mapToFirebaseOptions()
val isNotAlreadyInitialized =
FirebaseApp.getApps(context).none { it.name == DEFAULT_APP_NAME }
if (isNotAlreadyInitialized) {
FirebaseApp.initializeApp(context, firebaseOptions)
Timber.d("$TAG: Firebase initialized with environment: $environment")
} else {
Timber.d("$TAG: FirebaseApp already initialized with environment: $environment")
}
}
< /code>
Ich habe versucht, mehrere Apps festzulegen, anstatt die Standard -App nachzubilden. Ich hatte jedoch dieser Einschränkung: < /p>
Hinweis: Auf Android- und Apple -Plattformen werden die Analysen nur für die Standard -App protokolliert. Auf diese Weise stellen wir uns nicht dem DataSastore -Absturz gegenüber