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.

  • An array of all valid, logged-in users.

    Declaration

    Objective-C

    + (nonnull NSArray<RLMSyncUser *> *)all;

    Swift

    class func all() -> [RLMSyncUser]
  • The unique Realm Object Server user ID string identifying this user.

    Declaration

    Objective-C

    @property (readonly, nonatomic) NSString *_Nonnull 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 }
  • 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. A credential 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)authenticateWithCredential:(nonnull RLMSyncCredential *)credential
                         authServerURL:(nonnull NSURL *)authServerURL
                               timeout:(NSTimeInterval)timeout
                          onCompletion:(nonnull RLMUserCompletionBlock)completion;

    Swift

    class func __authenticate(with credential: RLMSyncCredential, authServerURL: URL, timeout: TimeInterval, onCompletion completion: RLMUserCompletionBlock)
  • Create, log in, and asynchronously return a new user object. A credential 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)authenticateWithCredential:(nonnull RLMSyncCredential *)credential
                         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]