isSameUser Not Working as expected

I have two meeting participants both in the same meeting and both logged in with the same user account credentials (one desktop, the other joining via the MobileRTC sdk). I retrieve the IDs of the users in the meeting then loop through checking if the user is the same:

   MobileRTCMeetingService *meetingService = [[MobileRTC sharedRTC] getMeetingService];
   NSArray *users = [meetingService getInMeetingUserList];
   for (NSNumber *user in users) {
       NSUInteger userId = [user unsignedIntegerValue];
       NSUInteger currentUserId = [[[MobileRTC sharedRTC] getMeetingService] myselfUserID];
       if ([meetingService isSameUser:userId compareTo:currentUserId]) {
             NSLog(@"This should be true for both of the IDs but it returns false when comparing desktop userId to sdk userId");
       if([meetingService isMyself:[user unsignedIntegerValue]]) {
             NSLog(@"User %@ is me", user);

My expectation is that isSameUser should return true for both cases since the users are associated with the same account (e.g., same login credentials). But isSameUser returns false when comparing the userId of the desktop user with the userId of the sdk user. Is this a bug?

Which version?

To Reproduce(If applicable)
Steps to reproduce the behavior:

  1. Join a meeting with a desktop user
  2. Join the same meeting by logging in via MobileRTC sdk
  3. Retrieve userIds for the meeting and call isSameUser method on MobileRTCMeetingService for users.
  4. Expectation: isSameUser should return true for the case where we are comparing desktop userId to userId that joined from sdk.

Smartphone (please complete the following information):

  • Device: iPhone 11
  • OS: 13.4
  • SDK Version: v5.0.24433.0616
  • Desktop Version: 5.3.1 (52877.0927)

Hey @danyulsimons

Thanks for using the dev forum!

No this is not a bug. The UserID’s must be unique for every user in the meeting, even if they are signed into the same account.

Let me know if you have any other questions

@Michael_Condon I see. So the isSameUser method is merely comparing the IDs? Is there a way to determine if two UserID’s are of the same user account?

Hey @danyulsimons

If the user is logged in you can use getAccountInfo in MobileRTCAuthService to obtain account information about that user. This info can be used to verify account information.

Let me know if you have any other questions.


Let me describe the use case a bit more. I login then join a meeting via the sdk. As users join that meeting I would like to be able to determine if the joining user is tied to the same account as the user that I logged in with via the sdk so that I can make that user the host after I complete some actions via the sdk. Basically the flow would look like:

  1. Join the meeting via sdk
  2. When user tied to same account joins make them the host
  3. When a certain event occurs in the meeting reclaim host via the sdk with host key, take actions that require host privileges, then give host back.

Hey @danyulsimons,

Gotcha, so when a user joins a meeting there are various routes that can authenticate them. They can either provide a meetingNumber and password, a ZAK token, or they can join after they have logged into Zoom using their Zoom email and password. All three of the routes will assign the user a unique userID for the meeting. However, when the users log into Zoom using their Zoom email and password, the email address is tied to that user. So even though, the users would have different userID’s, they would still have the same email address.

When you say “tied to the same account” do you mean tied to the same Zoom account or tied to the same SDK developer account? If you wanting to see if they are tied to the same Zoom account, they must log in with their email and password prior to joining a meeting. Then, once they are in a meeting you can see if they are using the same Zoom account as another user by comparing those two user’s email addresses.

If they are “tied to the same account” as in they are authenticated through the same SDK developer credentials, I do not believe there is a way to do this.

Let me know if you have any more questions.