SyncConfiguration.Builder 클래스
- java.lang.Object
-
- io.realm.mongodb.sync.SyncConfiguration.Builder
-
- 클래스를 둘러싸는 경우:
- SyncConfiguration
public static final class SyncConfiguration.Builder extends Object
SyncConfiguration의 인스턴스를 유창하게 구성하는 데 사용되는 빌더입니다.
-
-
생성자 요약
생성자 Constructor 설명 Builder(User user)
지정된 사용자와의 Flexible Sync SyncConfiguration 에 대한 빌더의 인스턴스를 생성합니다.Builder(User user, Integer partitionValue)
지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더의 인스턴스를 만듭니다.Builder(User user, Long partitionValue)
지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더의 인스턴스를 만듭니다.Builder(User user, String partitionValue)
지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더의 인스턴스를 만듭니다.Builder(User user, UUID partitionValue)
지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더의 인스턴스를 만듭니다.Builder(User user, ObjectId partitionValue)
지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더의 인스턴스를 만듭니다.
-
메서드 요약
-
-
-
생성자 세부 정보
-
빌더
public Builder(사용자 사용자)
지정된 사용자와의 Flexible Sync SyncConfiguration 에 대한 빌더의 인스턴스를 생성합니다.- 매개변수:
user
- Realm 앱에 액세스하는 데 사용할 사용자입니다.
-
빌더
public 빌더(사용자 사용자, @Nullable String partitionValue)
지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더의 인스턴스를 만듭니다.- 매개변수:
user
- Realm 앱에 액세스하는 데 사용할 사용자입니다.partitionValue
- 동기화될 원격 Realm을 식별하는 파티션 값입니다.
-
빌더
공개 빌더(사용자 사용자, @Nullable ObjectId partitionValue)
지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더의 인스턴스를 만듭니다.- 매개변수:
user
- Realm 앱에 액세스하는 데 사용할 사용자입니다.partitionValue
- 동기화될 원격 Realm을 식별하는 파티션 값입니다.
-
빌더
public 빌더(사용자 사용자, @Nullable Integer partitionValue)
지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더의 인스턴스를 만듭니다.- 매개변수:
user
- Realm 앱에 액세스하는 데 사용할 사용자입니다.partitionValue
- 동기화될 원격 Realm을 식별하는 파티션 값입니다.
-
빌더
public 빌더(사용자 사용자, @Nullable Long partitionValue)
지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더의 인스턴스를 만듭니다.- 매개변수:
user
- Realm 앱에 액세스하는 데 사용할 사용자입니다.partitionValue
- 동기화될 원격 Realm을 식별하는 파티션 값입니다.
-
-
메서드 세부 정보
-
이름
공개 SyncConfiguration.Builder 이름(문자열 파일 이름)
이 장치에 있는 Realm 파일의 파일 이름을 설정합니다.- 매개변수:
filename
- Realm 파일의 이름입니다.
-
encryptionKey
공개 SyncConfiguration.Builder encryptionKey(byte[] 키)
Realm 파일을 암호화하고 해독하는 데 사용되는 64 바이트 키를 설정합니다.- 매개변수:
key
- 암호화 키.- 예외 처리:
IllegalArgumentException
- 키가 유효하지 않은 경우.
-
스키마 버전
public SyncConfiguration.Builder schemaVersion(긴 schemaVersion)
Realm의 스키마 버전을 설정합니다.동기화된 Realm은 수동 마이그레이션 없이 적용할 수 있는 추가 스키마 변경만 지원합니다. 스키마 버전은 기본 스토리지 계층에 인덱스를 제거하거나 추가하는 표시로만 사용됩니다. 제공된 스키마 버전이 Realm 파일의 버전과 다른 경우 다시 계산됩니다. 경고: 여기에 삽입된 값이
BaseRealm.getVersion()
에서 반환된 값과 동일하다는 보장이 없습니다. 동기화된 Realm의 특성으로 인해 이 값은 더 높을 수도 있고 더 낮을 수도 있습니다.- 이 schemaVersion이 사용된 후 Lesser
schemaVersion
를 가진 다른 클라이언트가 처음으로 서버에 연결된 경우 이 값이 더 낮습니다. - 이 Realm이 생성된 후 더 높은
schemaVersion
을(를) 가진 다른 클라이언트가 서버에 연결되면 이 값이 더 높아집니다.
- 매개변수:
schemaVersion
- 스키마 버전입니다.- 예외 처리:
IllegalArgumentException
- 스키마 버전이 유효하지 않은 경우.
- 이 schemaVersion이 사용된 후 Lesser
-
모듈
공개 SyncConfiguration.Builder 모듈(객체 baseModule, 객체... additionalModule)
기존 모듈을 하나 이상의RealmModule
로 대체합니다. 이 방법을 사용하면 이 Realm의 현재 스키마가 제공된 모듈에서 정의된 스키마로 대체됩니다.프로젝트의 모든 Realm 클래스(종속성 제외)를 포함하는 기본 Realm 모듈에 대한 참고는
Realm.getDefaultModule()
을(를) 사용하여 찾을 수 있습니다. 따라서 다음 코드를 사용하여 앱 프로젝트의 스키마와 라이브러리 종속성을 결합합니다.builder.modules(Realm.getDefaultMode(), new MyLibraryModule());
- 매개변수:
baseModule
- 첫 번째 Realm 모듈(필수).additionalModules
- 추가 Realm 모듈- 예외 처리:
IllegalArgumentException
- 모듈 중 하나에RealmModule
주석이 없는 경우.- 다음도 참조하세요.
Realm.getDefaultModule()
-
모듈
public SyncConfiguration.Builder modules(Iterable<Object> modules)
기존 모듈을 하나 이상의RealmModule
로 대체합니다. 이 방법을 사용하면 이 Realm의 현재 스키마가 제공된 모듈에서 정의된 스키마로 대체됩니다.프로젝트의 모든 Realm 클래스(종속성 제외)를 포함하는 기본 Realm 모듈에 대한 참고는
Realm.getDefaultModule()
을(를) 사용하여 찾을 수 있습니다. 따라서 다음 코드를 사용하여 앱 프로젝트의 스키마와 라이브러리 종속성을 결합합니다.builder.modules(Realm.getDefaultMode(), new MyLibraryModule());
- 매개변수:
modules
- 첫 번째 Realm 모듈(필수)의 모듈 목록입니다.- 예외 처리:
IllegalArgumentException
- 모듈 중 하나에RealmModule
주석이 없는 경우.- 다음도 참조하세요.
Realm.getDefaultModule()
-
addModule
public SyncConfiguration.Builder addModule(객체 모듈)
이미 정의된 모듈에 모듈을 추가합니다.
-
rxFactory
public SyncConfiguration.Builder rxFactory(@Nonnull RxObservableFactory 팩토리)
Realm 객체에서 Rx Observable을 생성하는 데 사용되는RxObservableFactory
를 설정합니다. 기본 팩토리는RealmObservableFactory
입니다.- 매개변수:
factory
- 사용할 팩토리입니다.
-
flowFactory
public SyncConfiguration.Builder flowFactory(@Nonnull FlowFactory 팩토리)
Realm 객체에서 코루틴 흐름을 만드는 데 사용되는FlowFactory
을(를) 설정합니다. 기본 팩토리는RealmFlowFactory
입니다.- 매개변수:
factory
- 사용할 팩토리입니다.
-
초기 데이터
public SyncConfiguration.Builder initialData(Realm.트랜잭션 트랜잭션)
초기 데이터를Realm
로 설정합니다. 이 트랜잭션은 Realm 파일을 처음 열 때(생성) 또는RealmConfiguration.Builder.deleteRealmIfMigrationNeeded()
가 설정된 경우 데이터를 마이그레이션하는 동안에만 실행됩니다.- 매개변수:
transaction
- 실행할 트랜잭션입니다.
-
초기 구독
공개 SyncConfiguration.Builder initialSubscriptions(SyncConfiguration.InitialFlexibleSyncSubscriptions 조치)
의Subscription
초기Realm
를 설정합니다. Realm 파일을 처음 열 때(및 파일이 생성될 때)에만 실행됩니다.waitForInitialRemoteData()
도 구성한 경우, 모든 구독 데이터도 업로드될 때까지 영역 파일이 완전히 열리지 않습니다.- 매개변수:
action
-MutableSubscriptionSet
에 구독을 추가할 수 있습니다.
-
inMemory
public SyncConfiguration.Builder inMemory()
이 옵션을 설정하면 디스크에 저장하는 대신 인메모리 Realm이 생성됩니다. 메모리가 부족한 경우 인메모리 Realm에서 여전히 디스크 공간을 사용할 수 있지만 Realm이 닫히면 인메모리 Realm에서 생성된 모든 파일이 삭제됩니다.메모리 내 Realm은 지속되지 않기 때문에 데이터를 지속하려면 특정 이름의 Realm 객체에 대한 닫히지 않은 참고를 하나 이상 보유하고 있어야 합니다.
-
ErrorHandler
공개 SyncConfiguration.Builder 오류 핸들러 (SyncSession.ErrorHandler 오류 핸들러 )
이 구성에서 사용하는 오류 처리기를 설정합니다.정의된
SyncPolicy
에서 처리되지 않은 오류만 이 오류 처리기에 보고됩니다.- 매개변수:
errorHandler
- Realm Object Server와 통신할 때 오류를 다시 보고하는 데 사용되는 error handler입니다.- 예외 처리:
IllegalArgumentException
-null
가 오류 핸들러로 제공된 경우.
-
clientResetHandler
@Deprecated public SyncConfiguration.Builder clientResetHandler(SyncSession.ClientResetHandler 핸들러)
더 이상 사용되지 않습니다.클라이언트 재설정이 발생하는 경우 핸들러를 설정합니다. 핸들러가 설정되지 않고 클라이언트 재설정이 발생하면 오류가 기록됩니다.- 매개변수:
handler
- 클라이언트 재설정의 경우 사용자 지정 핸들러.
-
syncClientResetStrategy
public SyncConfiguration.Builder syncClientResetStrategy(수동 복구UnsyncedChangesStrategy 핸들러)
클라이언트 재설정이 발생하는 경우 핸들러를 설정합니다. 핸들러가 설정되지 않고 클라이언트 재설정이 발생하면 오류가 기록됩니다.- 매개변수:
handler
- 클라이언트 재설정의 경우 사용자 지정 수동 처리기.
-
syncClientResetStrategy
public SyncConfiguration.Builder syncClientResetStrategy(DiscardUnsyncedChangesStrategy 핸들러)
클라이언트 재설정이 발생하는 경우 핸들러를 설정합니다. 핸들러가 설정되지 않고 클라이언트 재설정이 발생하면 오류가 기록됩니다. 이 전략은 파티션 기반 동기화를 사용하는 동기화된 Realm에만 사용할 수 있습니다. Flexible Sync를 사용하는 Realm은 현재syncClientResetStrategy(ManuallyRecoverUnsyncedChangesStrategy)
만 지원합니다.- 매개변수:
handler
- 클라이언트 재설정의 경우 사용자 지정 원활한 손실 처리기.
-
waitForInitialRemoteData
공개 SyncConfiguration.Builder waitForInitialRemoteData()
이 옵션을 설정하면 Realm이 처음 열릴 때 서버에서 알려진 모든 변경 사항을 다운로드하게 됩니다. 모든 데이터가 다운로드될 때까지 Realm이 열리지 않습니다. 즉, 장치가 오프라인 상태이면 Realm이 열리지 않습니다.모든 변경 사항을 다운로드하는 것은 시간이 오래 걸리는 작업일 수 있으므로 UI 스레드를 차단할 수 있으므로 이 설정이 활성화된 Realms는 백그라운드 스레드에서 또는 UI 스레드에서
Realm.getInstanceAsync(RealmConfiguration, Realm.Callback)
을(를) 사용해서만 열어야 합니다.이 검사는 Realm이 처음 생성될 때만 적용됩니다. Realm에 최신 변경 사항이 있는지 확인하려면
SyncSession.downloadAllServerChanges()
을 사용합니다.
-
waitForInitialRemoteData
public SyncConfiguration.Builder waitForInitialRemoteData(긴 시간 제한, TimeUnit 단위)
이 옵션을 설정하면 Realm이 처음 열릴 때 서버에서 알려진 모든 변경 사항을 다운로드하게 됩니다. 모든 데이터가 다운로드될 때까지 Realm이 열리지 않습니다. 즉, 장치가 오프라인 상태이면 Realm이 열리지 않습니다.모든 변경 사항을 다운로드하는 것은 시간이 오래 걸리는 작업일 수 있으므로 UI 스레드를 차단할 수 있으므로 이 설정이 활성화된 Realms는 백그라운드 스레드에서 또는 UI 스레드에서
Realm.getInstanceAsync(RealmConfiguration, Realm.Callback)
을(를) 사용해서만 열어야 합니다.이 검사는 Realm이 처음 생성될 때만 적용됩니다. Realm에 최신 변경 사항이 있는지 확인하려면
SyncSession.downloadAllServerChanges()
을 사용합니다.- 매개변수:
timeout
-DownloadingRealmInterruptedException
가 발생하기 전에 다운로드가 완료될 때까지 기다리는 시간입니다.unit
- 시간 초과를 정의하는 데 사용되는 시간 단위입니다.
-
읽기 전용
공개 SyncConfiguration.Builder readOnly()
이를 설정하면 Realm이 읽기 전용이 되고 이 Realm에 대한 모든 쓰기 트랜잭션(write transaction)은IllegalStateException
을(를) 표시하여 실패합니다.이는 특히
이 프로세스에서 Realm을 읽기 전용으로 표시하는 것은 Realm에만 적용됩니다. 다른 프로세스 및 기기는 여전히 Realm에 쓸 수 있습니다.initialData(Realm.Transaction)
이(가) 읽기 전용 Realm과 함께 작동하지 않으며 이를 설정하면IllegalStateException
이(가) 발생한다는 MEAN입니다.
-
compactOnLaunch
public SyncConfiguration.Builder compactOnLaunch()
Realm 파일이 너무 커져서 상당한 양의 공간을 복구할 수 있는 경우 Realm 파일을 압축하게 됩니다. 자세한 내용은DefaultCompactOnLaunchCallback
를 참조하세요.
-
compactOnLaunch
public SyncConfiguration.Builder compactOnLaunch(CompactOnLaunchCallback compactOnLaunch)
사용자에게 반환되기 전에 Realm 파일을 압축해야 하는지 여부를 결정하기 위해 설정합니다. 총 파일 크기(데이터 + 여유 공간)와 파일의 데이터가 사용한 바이트가 전달됩니다.- 매개변수:
compactOnLaunch
- 프로세스 수명 동안 처음으로 Realm을 열 때 사용자에게 반환되기 전에 압축해야 하는지 여부를 결정하기 위해 호출되는 콜백입니다. 총 파일 크기(데이터 + 여유 공간)와 파일의 데이터가 사용한 바이트가 전달됩니다.
-
자산 파일
public SyncConfiguration.Builder 자산 파일(문자열 자산 파일)
Realm을 처음 열 때 빈 파일을 만드는 대신 제공된 자산 파일에서 Realm 파일을 복사하여 대신 사용합니다.이를 사용하여 Realm을 데이터로 미리 채울 수 있으므로 서버에서 다운로드할 필요가 없습니다.
제공된 Realm 파일은 지정된 사용자에 대해 동기화된 유효한 Realm이어야 하며
BaseRealm.writeCopyTo(File)
API를 사용하여 생성된 것이어야 합니다.경고: 이 작업은 시간이 오래 걸릴 수 있으므로 백그라운드 스레드에서 수행하는 것이 좋습니다.
- 매개변수:
assetFile
- 자산 데이터베이스 파일의 경로입니다.- 예외 처리:
IllegalStateException
- 이 Realm이inMemory()
로도 표시된 경우.
-
URLPrefix
public SyncConfiguration.Builder URLPrefix(문자열 URLPrefix)
MongoDB Realm에 대한 동기화 연결을 시작하는 WebSocket 요청의 경로 앞에 추가되는 접두사입니다. 지정된 값은 서버의 구성과 일치해야 하며, 그렇지 않으면 장치가 연결을 생성할 수 없습니다. 이 값은 선택 사항이며 특정 방화벽 규칙에 필요한 경우에만 설정해야 합니다.- 매개변수:
urlPrefix
- 동기화 연결 URL에 추가할 접두사입니다.
-
maxNumberOfActiveVersions
public SyncConfiguration.Builder maxNumberOfActiveVersions(긴 숫자)
더 많은 데이터를 쓰려고 할 때IllegalStateException
가 발생하기 전에 Realm 파일에 있는 최대 라이브 버전 수를 설정합니다.Realm은 다양한 버전의 Realm 객체를 동시에 처리할 수 있습니다. 이는 Realm이 여러 다른 스레드에서 열려 있거나 데이터가 파일에 기록되는 동안 객체를 동결하는 경우 발생할 수 있습니다.
정상적인 상황에서는 문제가 되지 않지만 활성 버전 수가 너무 많아지면 디스크의 파일 크기에 부정적인 영향을 미칩니다. 따라서 이 매개변수를 설정하면 매우 큰 Realm이 발생할 수 있는 Realm 사용을 방지할 수 있습니다.
참고로 이 장치에 다른 장치의 변경 사항이 통합되면 버전 번호도 증가하므로 활성 버전 수도 동일한 Realm에 쓰는 다른 장치가 수행하는 작업에 따라 달라집니다.
- 매개변수:
number
- 예외가 발생하기 전의 최대 활성 버전 수입니다.- 다음도 참조하세요.
- FAQ
-
allowWritesOnUiThread
public SyncConfiguration.Builder allowWritesOnUiThread(부울 allowWritesOnUiThread)
UI 스레드에서Realm.executeTransaction(io.realm.Realm.Transaction)
에 대한 호출을 허용할지 여부를 설정합니다.경고: Realm은 사용자가 이 메서드를 명시적으로 옵트인하지 않는 한 메인 스레드에서 동기 트랜잭션을 실행하는 것을 허용하지 않습니다.
executeTransaction
에 대한 호출을 UI가 아닌 스레드로 전환하거나Realm.executeTransactionAsync(io.realm.Realm.Transaction)
를 사용하는 것이 좋습니다.
-
allowQueriesOnUiThread
public SyncConfiguration.Builder allowQueriesOnUiThread(부울 allowQueriesOnUiThread)
UI 스레드에서RealmQueries
허용 여부를 설정합니다.기본적으로 Realm은 메인 스레드에서 쿼리를 허용합니다. 그러나 이렇게 하면 애플리케이션에서 프레임 드롭이나 ANR이 발생할 수 있습니다. 쿼리를 UI가 아닌 스레드로 전환하거나
RealmQuery.findAllAsync()
또는RealmQuery.findFirstAsync()
를 사용하는 것이 좋습니다.
-
빌드
public SyncConfiguration build()
빌더 매개변수를 기반으로 RealmConfiguration을 생성합니다.- 반환합니다:
- 생성된
SyncConfiguration
. - 예외 처리:
IllegalStateException
- 구성 매개변수가 유효하지 않거나 일치하지 않는 경우.
-
-