RLMSyncUser

@interface RLMSyncUser : NSObject

A RLMSyncUser instance represents a single Realm Object Server user account (or just user).

A user may have one or more credentials associated with it. These credentials uniquely identify the user to a third-party auth provider, and are used to sign into a Realm Object Server user account.

Note that users are only vended out via SDK APIs, and only one user instance ever exists for a given user account.

  • A dictionary of all valid, logged-in user identities corresponding to their RLMSyncUser objects.

    Declaration

    Objective-C

    + (nonnull NSDictionary<NSString *, RLMSyncUser *> *)allUsers;

    Swift

    class func __allUsers() -> [String : RLMSyncUser]
  • The logged-in user. nil if none exists.

    Warning

    Throws an exception if more than one logged-in user exists.

    Declaration

    Objective-C

    + (nullable RLMSyncUser *)currentUser;

    Swift

    class func __current() -> RLMSyncUser?
  • The unique Realm Object Server user ID string identifying this user.

    Declaration

    Objective-C

    @property (readonly, nonatomic, nullable) NSString *identity;

    Swift

    var identity: String? { get }
  • The URL of the authentication server this user will communicate with.

    Declaration

    Objective-C

    @property (readonly, nonatomic, nullable) NSURL *authenticationServer;

    Swift

    var authenticationServer: URL? { get }
  • Whether the user is a Realm Object Server administrator. Value reflects the state at the time of the last successful login of this user.

    Declaration

    Objective-C

    @property (readonly, nonatomic) BOOL isAdmin;

    Swift

    var isAdmin: Bool { get }
  • The current state of the user.

    Declaration

    Objective-C

    @property (readonly, nonatomic) RLMSyncUserState state;

    Swift

    var state: RLMSyncUserState { get }
  • Create, log in, and asynchronously return a new user object, specifying a custom timeout for the network request. Credentials identifying the user must be passed in. The user becomes available in the completion block, at which point it is ready for use.

    Declaration

    Objective-C

    + (void)logInWithCredentials:(nonnull RLMSyncCredentials *)credentials
                   authServerURL:(nonnull NSURL *)authServerURL
                         timeout:(NSTimeInterval)timeout
                    onCompletion:(nonnull RLMUserCompletionBlock)completion;

    Swift

    class func __logIn(with credentials: RLMSyncCredentials, authServerURL: URL, timeout: TimeInterval, onCompletion completion: @escaping RLMUserCompletionBlock)
  • Create, log in, and asynchronously return a new user object. Credentials identifying the user must be passed in. The user becomes available in the completion block, at which point it is ready for use.

    Declaration

    Objective-C

    + (void)logInWithCredentials:(nonnull RLMSyncCredentials *)credentials
                   authServerURL:(nonnull NSURL *)authServerURL
                    onCompletion:(nonnull RLMUserCompletionBlock)completion;
  • Log a user out, destroying their server state, deregistering them from the SDK, and removing any synced Realms associated with them from on-disk storage. If the user is already logged out or in an error state, this is a no-op.

    This method should be called whenever the application is committed to not using a user again unless they are recreated. Failing to call this method may result in unused files and metadata needlessly taking up space.

    Declaration

    Objective-C

    - (void)logOut;

    Swift

    func logOut()
  • Retrieve a valid session object belonging to this user for a given URL, or nil if no such object exists.

    Declaration

    Objective-C

    - (nullable RLMSyncSession *)sessionForURL:(nonnull NSURL *)url;

    Swift

    func session(for url: URL) -> RLMSyncSession?
  • Retrieve all the valid sessions belonging to this user.

    Declaration

    Objective-C

    - (nonnull NSArray<RLMSyncSession *> *)allSessions;

    Swift

    func allSessions() -> [RLMSyncSession]
  • Returns an instance of the Management Realm owned by the user.

    This Realm can be used to control access permissions for Realms managed by the user. This includes granting other users access to Realms.

    Declaration

    Objective-C

    - (nonnull RLMRealm *)managementRealmWithError:
        (NSError *_Nullable *_Nullable)error;

    Swift

    func __managementRealmWithError(_ error: NSErrorPointer) -> RLMRealm
  • Returns an instance of the Permission Realm owned by the user.

    This read-only Realm contains RLMSyncPermission objects reflecting the synchronized Realms and permission details this user has access to.

    Declaration

    Objective-C

    - (nonnull RLMRealm *)permissionRealmWithError:
        (NSError *_Nullable *_Nullable)error;

    Swift

    func __permissionRealmWithError(_ error: NSErrorPointer) -> RLMRealm