Skip to content

Commit 7a88d00

Browse files
committed
detecting deleted player ids and resetting the external user id cache
1 parent 9436ac6 commit 7a88d00

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

iOS_SDK/OneSignalSDK/Source/OSStateSynchronizer.m

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,13 @@ - (void)registerUserWithState:(OSUserState *)registrationState withSuccess:(OSMu
148148
//update push player id
149149
if (results.count > 0 && results[OS_PUSH][@"id"]) {
150150
self.currentSubscriptionState.userId = results[OS_PUSH][@"id"];
151+
152+
// Player record was deleted so we should reset external user id
153+
let cachedPlayerId = [OneSignalUserDefaults.initStandard getSavedStringForKey:OSUD_PLAYER_ID_TO defaultValue:nil];
154+
if (cachedPlayerId && ![results[OS_PUSH][@"id"] isEqualToString:cachedPlayerId]) {
155+
[OneSignal onesignal_Log:ONE_S_LL_VERBOSE message:[NSString stringWithFormat: @"Player id has changed. Clearing cached external user id"]];
156+
[OneSignalUserDefaults.initStandard saveStringForKey:OSUD_EXTERNAL_USER_ID withValue:nil];
157+
}
151158

152159
// Save player_id to both standard and shared NSUserDefaults
153160
[OneSignalUserDefaults.initStandard saveStringForKey:OSUD_PLAYER_ID_TO withValue:self.currentSubscriptionState.userId];

0 commit comments

Comments
 (0)