Skip to content

Commit f943833

Browse files
committed
Remove listener when FirebaseApp deleted, and update log messages
1 parent e43a818 commit f943833

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

firebase-perf/src/main/java/com/google/firebase/perf/FirebasePerformanceInitializer.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@ public void onAppColdStart() {
3131
try {
3232
FirebasePerformance.getInstance();
3333
} catch (IllegalStateException ex) {
34-
logger.info("Failed to get instance of FirebasePerformance: %s", ex);
34+
logger.info(
35+
"FirebaseApp is not initialized. Firebase Performance will not be collecting any "
36+
+ "performance metrics until initialized. %s",
37+
ex);
3538
}
3639
}
3740
}

firebase-sessions/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Unreleased
22

3+
* [fixed] Made Sessions more resilient to the FirebaseApp instance being deleted.
4+
5+
# 1.0.1
6+
37
* [fixed] Fixed NPE when no version name is
48
set ([#5195](//github.com/firebase/firebase-android-sdk/issues/5195)).
59
* [fixed] Populate DataCollectionStatus fields for Crashlytics and Perf.

firebase-sessions/src/main/kotlin/com/google/firebase/sessions/FirebaseSessions.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ internal constructor(
7575
val appContext = firebaseApp.applicationContext.applicationContext
7676
if (appContext is Application) {
7777
appContext.registerActivityLifecycleCallbacks(sessionInitiator.activityLifecycleCallbacks)
78+
79+
firebaseApp.addLifecycleEventListener { _, _ ->
80+
Log.w(TAG, "FirebaseApp instance deleted. Sessions library will not collect session data.")
81+
appContext.unregisterActivityLifecycleCallbacks(sessionInitiator.activityLifecycleCallbacks)
82+
}
7883
} else {
7984
Log.e(
8085
TAG,
@@ -144,7 +149,11 @@ internal constructor(
144149
sessionCoordinator.attemptLoggingSessionEvent(sessionEvent)
145150
} catch (ex: IllegalStateException) {
146151
// This can happen if the app suddenly deletes the instance of FirebaseApp.
147-
Log.i(TAG, "Sessions SDK failed to log Session Start event.", ex)
152+
Log.i(
153+
TAG,
154+
"FirebaseApp is not initialized. Sessions library will not collect session data.",
155+
ex
156+
)
148157
}
149158
}
150159

0 commit comments

Comments
 (0)