@@ -641,24 +641,40 @@ - (NSDictionary *)fetchNativeStackFramesBy:(NSArray<NSNumber *> *)instructionsAd
641641RCT_EXPORT_METHOD (setUser : (NSDictionary *)userKeys otherUserKeys : (NSDictionary *)userDataKeys)
642642{
643643 [SentrySDK configureScope: ^(SentryScope *_Nonnull scope) {
644- if (nil == userKeys && nil == userDataKeys) {
644+ // we can safelly ignore userDataKeys since if original JS user was null userKeys will be null
645+ if ([[NSNull null ] isEqual: userKeys] || nil == userKeys) {
645646 [scope setUser: nil ];
646- } else {
647+ } else if ([userKeys isKindOfClass: NSDictionary . class ]) {
647648 SentryUser *userInstance = [[SentryUser alloc ] init ];
648649
649- if (nil != userKeys) {
650- [userInstance setUserId: userKeys[@" id" ]];
651- [userInstance setIpAddress: userKeys[@" ip_address" ]];
652- [userInstance setEmail: userKeys[@" email" ]];
653- [userInstance setUsername: userKeys[@" username" ]];
654- [userInstance setSegment: userKeys[@" segment" ]];
650+ id userId = [userKeys valueForKey: @" id" ];
651+ if ([userId isKindOfClass: NSString .class ]) {
652+ [userInstance setUserId: userId];
653+ }
654+ id ipAddress = [userKeys valueForKey: @" ip_address" ];
655+ if ([ipAddress isKindOfClass: NSString .class ]) {
656+ [userInstance setIpAddress: ipAddress];
657+ }
658+ id email = [userKeys valueForKey: @" email" ];
659+ if ([email isKindOfClass: NSString .class ]) {
660+ [userInstance setEmail: email];
661+ }
662+ id username = [userKeys valueForKey: @" username" ];
663+ if ([username isKindOfClass: NSString .class ]) {
664+ [userInstance setUsername: username];
665+ }
666+ id segment = [userKeys valueForKey: @" segment" ];
667+ if ([segment isKindOfClass: NSString .class ]) {
668+ [userInstance setSegment: segment];
655669 }
656670
657- if (nil != userDataKeys) {
671+ if ([ userDataKeys isKindOfClass: NSDictionary . class ] ) {
658672 [userInstance setData: userDataKeys];
659673 }
660674
661675 [scope setUser: userInstance];
676+ } else {
677+ NSLog (@" [RNSentry] Method setUser received unexpected type of userKeys." );
662678 }
663679 }];
664680}
0 commit comments