RLM 사용자
Objective-C
@interface RLMUser : NSObject
스위프트
@_nonSendable(_assumed) class RLMUser : NSObject, @unchecked Sendable
RLMUser
인스턴스는 단일 Realm 앱 사용자 계정을 나타냅니다.
사용자에게는 하나 이상의 자격 증명이 연결되어 있을 수 있습니다. 이러한 자격 증명은 인증 제공자에 대해 사용자를 고유하게 식별하며, Atlas App Services 사용자 계정에 로그인하는 데 사용됩니다.
사용자 객체는 SDK API를 통해서만 판매되며 직접 초기화할 수 없습니다. 모든 스레드에서 사용자 객체에 액세스할 수 있습니다.
-
이 사용자를 식별하는 고유한 Atlas App Services 문자열입니다. 이는 ID와는 다르다는 점에 유의하세요. 사용자는 여러 개의 ID를 가질 수 있지만 식별자는 하나입니다. RLMUserIdentity를 참조하세요.
선언
Objective-C
@property (nonatomic, readonly) NS_SWIFT_NAME(id) NSString *identifier;
스위프트
var id: String { get }
-
현재 사용자에게 연결된 ID 배열을 반환합니다.
선언
Objective-C
@property (nonatomic, readonly) NSArray<RLMUserIdentity *> *_Nonnull identities;
스위프트
var identities: [RLMUserIdentity] { get }
-
App Services에 액세스하는 데 사용되는 사용자의 새로 고침 토큰입니다.
기본적으로 새로 고침 토큰은 발행 후 60일이 지나면 만료됩니다. 앱의 새로 고침 토큰에 대한 이 시간을 30분에서 180일 사이로 구성할 수 있습니다.
Admin UI 또는 Admin API에서 앱의 모든 세션에 대한 새로 고침 토큰 만료 시간을 구성할 수 있습니다.
선언
Objective-C
@property (nonatomic, readonly, nullable) NSString *refreshToken;
스위프트
var refreshToken: String? { get }
-
App Services에 액세스하는 데 사용되는 사용자의 액세스 토큰입니다.
이는 데이터 API 또는 GraphQL과 같은 Atlas App Services에 HTTP 요청을 하는 데 필요합니다. 민감한 데이터로 취급되어야 합니다.
Realm SDK는 액세스 토큰을 자동으로 managed하고 만료되면 새로 고칩니다.
선언
Objective-C
@property (nonatomic, readonly, nullable) NSString *accessToken;
스위프트
var accessToken: String? { get }
-
사용자의 현재 상태입니다.
선언
Objective-C
@property (nonatomic, readonly) RLMUserState state;
스위프트
var state: RLMUserState { get }
-
사용자의 로그인 여부를 나타냅니다. 액세스 토큰과 새로 고침 토큰이 비어 있지 않으면 true를 반환합니다.
선언
Objective-C
@property (nonatomic, readonly) BOOL isLoggedIn;
스위프트
var isLoggedIn: Bool { get }
-
지정된 파티션 값에 대한 파티션 기반 동기화 구성 인스턴스를 만듭니다.
선언
Objective-C
- (nonnull RLMRealmConfiguration *)configurationWithPartitionValue: (nullable id<RLMBSON>)partitionValue;
매개변수
partitionValue
Realm이 분할된
RLMBSON
값입니다.반환 값
지정된 파티션 값을 사용하도록 동기화 구성이 설정된 기본 구성 객체입니다.
-
지정된 파티션 값에 대한 파티션 기반 동기화 구성 인스턴스를 만듭니다.
선언
Objective-C
- (nonnull RLMRealmConfiguration *) configurationWithPartitionValue:(nullable id<RLMBSON>)partitionValue clientResetMode:(RLMClientResetMode)clientResetMode;
매개변수
partitionValue
Realm이 분할된
RLMBSON
값입니다.clientResetMode
클라이언트 재설정 이벤트 시 파일 복구 동작을 결정합니다. 참조: https://mongodb.com/ko-KR/docs/realm/sync/error-핸들링/client-resets/
반환 값
지정된 파티션 값을 사용하도록 동기화 구성이 설정된 구성 객체입니다.
-
지정된 파티션 값에 대한 파티션 기반 동기화 구성 인스턴스를 만듭니다.
선언
Objective-C
- (nonnull RLMRealmConfiguration *) configurationWithPartitionValue:(nullable id<RLMBSON>)partitionValue clientResetMode:(RLMClientResetMode)clientResetMode notifyBeforeReset: (nullable RLMClientResetBeforeBlock)beforeResetBlock notifyAfterReset: (nullable RLMClientResetAfterBlock)afterResetBlock;
매개변수
partitionValue
Realm이 분할된
RLMBSON
값입니다.clientResetMode
클라이언트 재설정 이벤트 시 파일 복구 동작을 결정합니다. 참조: https://mongodb.com/ko-KR/docs/realm/sync/error-핸들링/client-resets/
beforeResetBlock
클라이언트 재설정이 발생하기 전에 알리는 콜백입니다. 참조:
RLMClientResetBeforeBlock
afterResetBlock
클라이언트 재설정이 발생한 후 알리는 콜백입니다. 참조:
RLMClientResetAfterBlock
반환 값
지정된 파티션 값을 사용하도록 동기화 구성이 설정된 구성 객체입니다.
-
지정된 파티션 값에 대한 파티션 기반 동기화 구성 인스턴스를 만듭니다.
선언
Objective-C
- (nonnull RLMRealmConfiguration *) configurationWithPartitionValue:(nullable id<RLMBSON>)partitionValue clientResetMode:(RLMClientResetMode)clientResetMode manualClientResetHandler: (nullable RLMSyncErrorReportingBlock)manualClientResetHandler;
매개변수
partitionValue
Realm이 분할된
RLMBSON
값입니다.clientResetMode
클라이언트 재설정 이벤트 시 파일 복구 동작을 결정합니다. 참조: https://mongodb.com/ko-KR/docs/realm/sync/error-핸들링/client-resets/
manualClientResetHandler
클라이언트 재설정 중에 호출되는 오류 보고 차단입니다. @참조
RLMSyncErrorReportingBlock
및RLMClientResetInfo
반환 값
지정된 파티션 값을 사용하도록 동기화 구성이 설정된 구성 객체입니다.
-
Flexible Sync를 지원하는 Realm을 여는 데 사용할 수 있는 Flexible Sync 구성 인스턴스를 생성하세요.
참고
단일 서버 Realm Mobile Sync 앱으로 파티션 기반 Realm 또는 Flexible Sync 기반 Realm과 데이터를 동기화할 수 있습니다. 애플리케이션에 파티션 기반 동기화 Realm과 Flexible Sync Realm을 모두 포함하려면 서버 측 Realm Mobile Sync 앱을 두 개 이상 사용해야 합니다.
선언
Objective-C
- (nonnull RLMRealmConfiguration *)flexibleSyncConfiguration;
반환 값
Flexible Sync 구성을 가진
RLMRealmConfiguration
인스턴스입니다. -
Flexible Sync를 지원하는 Realm을 여는 데 사용할 수 있는 Flexible Sync 구성 인스턴스를 생성하세요.
참고
단일 서버 Realm Mobile Sync 앱으로 파티션 기반 Realm 또는 Flexible Sync 기반 Realm과 데이터를 동기화할 수 있습니다. 애플리케이션에 파티션 기반 동기화 Realm과 Flexible Sync Realm을 모두 포함하려면 서버 측 Realm Mobile Sync 앱을 두 개 이상 사용해야 합니다.
선언
Objective-C
- (nonnull RLMRealmConfiguration *) flexibleSyncConfigurationWithClientResetMode: (RLMClientResetMode)clientResetMode notifyBeforeReset: (nullable RLMClientResetBeforeBlock) beforeResetBlock notifyAfterReset: (nullable RLMClientResetAfterBlock) afterResetBlock;
매개변수
clientResetMode
클라이언트 재설정 이벤트 시 파일 복구 동작을 결정합니다. 참조: https://mongodb.com/ko-KR/docs/realm/sync/error-핸들링/client-resets/
beforeResetBlock
클라이언트 재설정이 발생하기 전에 알리는 콜백입니다. 참조:
RLMClientResetBeforeBlock
afterResetBlock
클라이언트 재설정이 발생한 후 알리는 콜백입니다. 참조:
RLMClientResetAfterBlock
반환 값
Flexible Sync 구성을 가진
RLMRealmConfiguration
인스턴스입니다. -
Flexible Sync를 지원하는 Realm을 여는 데 사용할 수 있는 Flexible Sync 구성 인스턴스를 생성하세요.
참고
단일 서버 Realm Mobile Sync 앱으로 파티션 기반 Realm 또는 Flexible Sync 기반 Realm과 데이터를 동기화할 수 있습니다. 애플리케이션에 파티션 기반 동기화 Realm과 Flexible Sync Realm을 모두 포함하려면 서버 측 Realm Mobile Sync 앱을 두 개 이상 사용해야 합니다.
선언
Objective-C
- (nonnull RLMRealmConfiguration *) flexibleSyncConfigurationWithClientResetMode: (RLMClientResetMode)clientResetMode manualClientResetHandler: (nullable RLMSyncErrorReportingBlock) manualClientResetHandler;
매개변수
clientResetMode
클라이언트 재설정 이벤트 시 파일 복구 동작을 결정합니다. 참조: https://mongodb.com/ko-KR/docs/realm/sync/error-핸들링/client-resets/
manualClientResetHandler
클라이언트 재설정 중에 호출되는 오류 보고 차단입니다. @참조
RLMSyncErrorReportingBlock
및RLMClientResetInfo
반환 값
Flexible Sync 구성을 가진
RLMRealmConfiguration
인스턴스입니다. -
Flexible Sync를 지원하는 Realm을 여는 데 사용할 수 있는 Flexible Sync 구성 인스턴스를 생성하세요.
참고
단일 서버 Realm Mobile Sync 앱으로 파티션 기반 Realm 또는 Flexible Sync 기반 Realm과 데이터를 동기화할 수 있습니다. 애플리케이션에 파티션 기반 동기화 Realm과 Flexible Sync Realm을 모두 포함하려면 서버 측 Realm Mobile Sync 앱을 두 개 이상 사용해야 합니다.
선언
Objective-C
- (nonnull RLMRealmConfiguration *) flexibleSyncConfigurationWithInitialSubscriptions: (nonnull RLMFlexibleSyncInitialSubscriptionsBlock)initialSubscriptions rerunOnOpen:(BOOL)rerunOnOpen;
매개변수
initialSubscriptions
구독 세트 인스턴스를 수신하는 블록으로, Realm이 처음 열릴 때 실행될 초기 구독 세트를 추가하는 데 사용할 수 있습니다.
rerunOnOpen
true인 경우 앱을 시작할 때마다 지정된 초기 구독 세트를 실행할 수 있습니다. 이를 사용하여 동적 시간 범위 및 정적 변수를 다시 계산해야 하는 기타 쿼리를 다시 실행할 수 있습니다.
반환 값
Flexible Sync 구성을 가진
RLMRealmConfiguration
인스턴스입니다. -
-flexibleSyncConfigurationWithInitialSubscriptions:
rerunOnOpen: clientResetMode: notifyBeforeReset: notifyAfterReset: Flexible Sync를 지원하는 Realm을 여는 데 사용할 수 있는 Flexible Sync 구성 인스턴스를 생성하세요.
참고
단일 서버 Realm Mobile Sync 앱으로 파티션 기반 Realm 또는 Flexible Sync 기반 Realm과 데이터를 동기화할 수 있습니다. 애플리케이션에 파티션 기반 동기화 Realm과 Flexible Sync Realm을 모두 포함하려면 서버 측 Realm Mobile Sync 앱을 두 개 이상 사용해야 합니다.
선언
Objective-C
- (nonnull RLMRealmConfiguration *) flexibleSyncConfigurationWithInitialSubscriptions: (nonnull RLMFlexibleSyncInitialSubscriptionsBlock)initialSubscriptions rerunOnOpen:(BOOL)rerunOnOpen clientResetMode: (RLMClientResetMode)clientResetMode notifyBeforeReset: (nullable RLMClientResetBeforeBlock) beforeResetBlock notifyAfterReset: (nullable RLMClientResetAfterBlock) afterResetBlock;
매개변수
initialSubscriptions
구독 세트 인스턴스를 수신하는 블록으로, Realm이 처음 열릴 때 실행될 초기 구독 세트를 추가하는 데 사용할 수 있습니다.
rerunOnOpen
true인 경우 앱을 시작할 때마다 지정된 초기 구독 세트를 실행할 수 있습니다. 이를 사용하여 동적 시간 범위 및 정적 변수를 다시 계산해야 하는 기타 쿼리를 다시 실행할 수 있습니다.
clientResetMode
클라이언트 재설정 이벤트 시 파일 복구 동작을 결정합니다. 참조: https://mongodb.com/ko-KR/docs/realm/sync/error-핸들링/client-resets/
beforeResetBlock
클라이언트 재설정이 발생하기 전에 알리는 콜백입니다. 참조:
RLMClientResetBeforeBlock
afterResetBlock
클라이언트 재설정이 발생한 후 알리는 콜백입니다. 참조:
RLMClientResetAfterBlock
반환 값
Flexible Sync 구성을 가진
RLMRealmConfiguration
인스턴스입니다. -
-flexibleSyncConfigurationWithInitialSubscriptions:
rerunOnOpen: clientResetMode: manualClientResetHandler: Flexible Sync를 지원하는 Realm을 여는 데 사용할 수 있는 Flexible Sync 구성 인스턴스를 생성하세요.
참고
단일 서버 Realm Mobile Sync 앱으로 파티션 기반 Realm 또는 Flexible Sync 기반 Realm과 데이터를 동기화할 수 있습니다. 애플리케이션에 파티션 기반 동기화 Realm과 Flexible Sync Realm을 모두 포함하려면 서버 측 Realm Mobile Sync 앱을 두 개 이상 사용해야 합니다.
선언
Objective-C
- (nonnull RLMRealmConfiguration *) flexibleSyncConfigurationWithInitialSubscriptions: (nonnull RLMFlexibleSyncInitialSubscriptionsBlock)initialSubscriptions rerunOnOpen:(BOOL)rerunOnOpen clientResetMode: (RLMClientResetMode)clientResetMode manualClientResetHandler: (nullable RLMSyncErrorReportingBlock) manualClientResetHandler;
매개변수
initialSubscriptions
구독 세트 인스턴스를 수신하는 블록으로, Realm이 처음 열릴 때 실행될 초기 구독 세트를 추가하는 데 사용할 수 있습니다.
rerunOnOpen
true인 경우 앱을 시작할 때마다 지정된 초기 구독 세트를 실행할 수 있습니다. 이를 사용하여 동적 시간 범위 및 정적 변수를 다시 계산해야 하는 기타 쿼리를 다시 실행할 수 있습니다.
clientResetMode
클라이언트 재설정 이벤트 시 파일 복구 동작을 결정합니다. 참조: https://mongodb.com/ko-KR/docs/realm/sync/error-핸들링/client-resets/
manualClientResetHandler
클라이언트 재설정 중에 호출되는 오류 보고 차단입니다. @참조
RLMSyncErrorReportingBlock
및RLMClientResetInfo
반환 값
Flexible Sync 구성을 가진
RLMRealmConfiguration
인스턴스입니다.
-
지정된 URL에 대해 이 사용자에게 속한 유효한 세션 객체를 조회하거나, 해당 객체가 없는 경우
nil
를 조회합니다.선언
Objective-C
- (nullable RLMSyncSession *)sessionForPartitionValue: (nonnull id<RLMBSON>)partitionValue;
스위프트
func session(forPartitionValue partitionValue: any RLMBSON) -> RLMSyncSession?
-
이 사용자에게 속한 모든 유효한 세션을 조회합니다.
선언
Objective-C
@property (nonatomic, readonly) NSArray<RLMSyncSession *> *_Nonnull allSessions;
스위프트
var allSessions: [RLMSyncSession] { get }
-
사용자의 사용자 지정 데이터입니다. 이는 Atlas App Services App에서 구성합니다.
선언
Objective-C
@property (nonatomic, readonly) NS_REFINED_FOR_SWIFT NSDictionary *customData;
-
사용자의 프로필입니다.
선언
Objective-C
@property (nonatomic, readonly) RLMUserProfile *_Nonnull profile;
스위프트
var profile: RLMUserProfile { get }
-
사용자의 사용자 지정 데이터를 새로 고칩니다. 이렇게 하면 사실상 사용자의 인증 세션이 새로 고쳐집니다.
선언
Objective-C
- (void)refreshCustomDataWithCompletion: (nonnull RLMUserCustomDataBlock)completion;
스위프트
func refreshCustomData() async throws -> [AnyHashable : Any]
-
현재 인증된 사용자를 새 ID와 연결하며, 여기서 ID는 매개 변수로 지정된 자격 증명으로 정의됩니다. 이
RLMUser
가 현재 생성된 클라이언트로 인증된 경우에만 성공합니다. 성공하면 새 사용자가 새로 연결된 자격 증명과 함께 반환됩니다.선언
Objective-C
- (void)linkUserWithCredentials:(nonnull RLMCredentials *)credentials completion:(nonnull RLMOptionalUserBlock)completion;
매개변수
credentials
RLMCredentials
은 사용자를 새 ID에 연결하는 데 사용됩니다.completion
연결이 완료되면 호출할 완료 핸들러입니다. 작업이 성공하면 결과에는 현재 로그인한 사용자를 나타내는 새
RLMUser
객체가 포함됩니다. -
사용자 제거
이렇게 하면 로그아웃되고 이 사용자와 관련된 세션이 삭제됩니다. 사용자를 찾을 수 없거나 사용자가 이미 제거된 경우 완료 차단은 오류를 반환합니다.
선언
Objective-C
- (void)removeWithCompletion:(nonnull RLMUserOptionalErrorBlock)completion;
스위프트
func remove() async throws
매개변수
completion
완료 시 호출되는 콜백
-
Atlas App Services App에서 이 사용자를 영구적으로 삭제합니다.
사용자 상태가
Removed
로 설정되고 세션이 파기됩니다. 삭제 요청이 실패하면 로컬 인증 상태가 변경되지 않습니다.선언
Objective-C
- (void)deleteWithCompletion:(nonnull RLMUserOptionalErrorBlock)completion;
스위프트
func delete() async throws
매개변수
completion
완료 시 호출되는 콜백
-
현재 사용자를 로그아웃합니다.
사용자 상태는 익명 사용자인 경우
Removed
, 이메일/비밀번호 또는 타사 인증 클라이언트에 의해 인증된 경우LoggedOut
로 설정됩니다 로그아웃 요청이 실패하더라도 이 방법은 여전히 로컬 인증 상태를 지웁니다.선언
Objective-C
- (void)logOutWithCompletion:(nonnull RLMUserOptionalErrorBlock)completion;
스위프트
func logOut() async throws
매개변수
completion
완료 시 호출되는 콜백
-
사용자 API 키를 생성하고 수정하는 데 사용할 수 있는 사용자 API 키 인증 제공자용 클라이언트입니다.
이 클라이언트는 인증된 사용자만 사용해야 합니다.
선언
Objective-C
@property (nonatomic, readonly) RLMAPIKeyAuth *_Nonnull apiKeysAuth;
스위프트
var apiKeysAuth: RLMAPIKeyAuth { get }
-
원격 MongoDB 인스턴스와 상호 작용하기 위한 클라이언트
선언
Objective-C
- (nonnull RLMMongoClient *)mongoClientWithServiceName: (nonnull NSString *)serviceName;
매개변수
serviceName
MongoDB 서비스의 이름
-
제공된 이름과 인수를 사용하여 Atlas App Services 함수를 호출합니다.
선언
Objective-C
- (void)callFunctionNamed:(nonnull NSString *)name arguments:(nonnull NSArray<id<RLMBSON>> *)arguments completionBlock:(nonnull RLMCallFunctionCompletionBlock)completion;
매개변수
name
호출할 Atlas App Services 함수의 이름입니다.
arguments
함수에 제공할 인수의
BSONArray
입니다.completion
함수 호출이 완료되면 호출할 완료 핸들러입니다. 이 핸들러는 메인이 아닌 글로벌
DispatchQueue
에서 실행됩니다.