Skip to content

Commit 4506192

Browse files
authored
Merge pull request #903 from OneSignal/fix/external_user_id_fixes
External user id not being sent fix
2 parents b48f6b5 + 7a88d00 commit 4506192

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
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];

iOS_SDK/OneSignalSDK/Source/OneSignal.m

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2562,9 +2562,7 @@ + (BOOL)shouldUpdateExternalUserId:(NSString*)externalId withRequests:(NSDiction
25622562
bool updateExternalUserId = ![self.existingPushExternalUserId isEqualToString:externalId]
25632563
&& !requests[@"email"];
25642564

2565-
// If we are making a request to email user, we need validate both external user ids
2566-
bool updateEmailExternalUserId = (![self.existingPushExternalUserId isEqualToString:externalId]
2567-
&& requests[@"email"]
2565+
bool updateEmailExternalUserId = (requests[@"email"]
25682566
&& ![self.existingEmailExternalUserId isEqualToString:externalId]);
25692567

25702568
return updateExternalUserId || updateEmailExternalUserId;

0 commit comments

Comments
 (0)