Skip to content

Commit 336901b

Browse files
committed
fix(messaging, android): properly remove remote message from prefs
previously the remove was not applied, so it likely never persisted to storage, leading to infinite growth and possible OOM
1 parent b3ec907 commit 336901b

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

packages/app/android/src/main/java/io/invertase/firebase/common/UniversalFirebasePreferences.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ public void clearAll() {
7474
getPreferences().edit().clear().apply();
7575
}
7676

77+
// Note the caller is responsible for calling apply() or commit() on the
78+
// returned SharedPreferences.Editor object for the remove to take affect
7779
public SharedPreferences.Editor remove(String key) {
7880
return getPreferences().edit().remove(key);
7981
}

packages/messaging/android/src/main/java/io/invertase/firebase/messaging/ReactNativeFirebaseMessagingStoreImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public WritableMap getFirebaseMessageMap(String remoteMessageId) {
7474
@Override
7575
public void clearFirebaseMessage(String remoteMessageId) {
7676
UniversalFirebasePreferences preferences = UniversalFirebasePreferences.getSharedInstance();
77-
preferences.remove(remoteMessageId);
77+
preferences.remove(remoteMessageId).apply();
7878
// check and remove old notifications message
7979
String notificationIds = preferences.getStringValue(S_KEY_ALL_NOTIFICATION_IDS, "");
8080
if (!notificationIds.isEmpty()) {

0 commit comments

Comments
 (0)