Docs Menu
Docs Home
/ /
Atlas Device SDK
/ / /

SyncConfiguration.Builder 클래스

이 페이지의 내용

  • io.realm.mongodb.sync
  • 생성자
  • 메서드 요약
  • 상속된 메서드
  • 생성자 세부 정보
  • 메서드 세부 정보
  • addModule
  • allowQueriesOnUiThread
  • allowWritesOnUiThread
  • 자산 파일
  • 빌드
  • clientResetHandler
  • compactOnLaunch
  • encryptionKey
  • ErrorHandler
  • flowFactory
  • inMemory
  • 초기 데이터
  • 초기 구독
  • maxNumberOfActiveVersions
  • 모듈
  • 이름
  • 읽기 전용
  • rxFactory
  • 스키마 버전
  • syncClientResetStrategy
  • URLPrefix
  • waitForInitialRemoteData
java.lang.Object
io.realm.mongodb.sync.SyncConfiguration.Builder

클래스를 둘러싸는 경우:

SyncConfiguration

SyncConfiguration의 인스턴스를 유창하게 구성하는 데 사용되는 빌더입니다.

생성자 및 설명
User user
)

지정된 사용자와의 Flexible Sync SyncConfiguration 에 대한 빌더 인스턴스를 생성합니다.

User user,
String partitionValue
)

지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더 인스턴스를 만듭니다.

User user,
ObjectId partitionValue
)

지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더 인스턴스를 만듭니다.

수정자 및 유형
메서드 및 설명
Object module
)

이미 정의된 모듈에 모듈을 추가합니다.

boolean allowQueriesOnUiThread
)

UI 스레드에서 RealmQueries 허용 여부를 설정합니다.

boolean allowWritesOnUiThread
)

UI 스레드에서 Realm.executeTransaction 에 대한 호출을 허용할지 여부를 설정합니다.

String assetFile
)

Realm을 처음 열 때 빈 파일을 만드는 대신 제공된 자산 파일에서 Realm 파일을 복사하여 대신 사용합니다.

빌더 매개변수를 기반으로 RealmConfiguration을 생성합니다.

클라이언트 재설정이 발생하는 경우 핸들러를 설정합니다.

사용자에게 반환되기 전에 Realm 파일을 압축해야 하는지 여부를 결정하기 위해 설정합니다.

Realm 파일이 너무 커져서 상당한 양의 공간을 복구할 수 있는 경우 Realm 파일을 압축하게 됩니다.

byte[] key
)

Realm 파일을 암호화하고 해독하는 데 사용되는 io.realm.Realm#ENCRYPTION_KEY_LENGTH 바이트 키를 설정합니다.

이 구성에서 사용하는 오류 처리기를 설정합니다.

Realm 객체에서 코루틴 Flow를 만드는 데 사용되는 FlowFactory 를 설정합니다.

이 옵션을 설정하면 디스크에 저장하는 대신 인메모리 Realm이 생성됩니다.

io.realm.Realm 에 초기 데이터를 설정합니다.

IllegalStateException 이 발생하기 전에 Realm 파일의 최대 라이브 버전 수를 설정합니다. 더 많은 데이터를 쓰려고 할 때 발생합니다.

기존 모듈을 하나 이상의 RealmModule 로 대체합니다.

Object baseModule,
java.lang.Object[] additionalModules
)

기존 모듈을 하나 이상의 RealmModule 로 대체합니다.

String filename
)

이 장치에 있는 Realm 파일의 파일 이름을 설정합니다.

이 값을 설정하면 Realm이 읽기 전용이 되며 이 Realm에 대한 모든 쓰기 트랜잭션(write transaction)이 실패하고 실패합니다(IllegalStateException ). .

Realm 객체에서 Rx Observable을 생성하는 데 사용되는 RxObservableFactory 를 설정합니다.

long schemaVersion
)

Realm의 스키마 버전을 설정합니다.

클라이언트 재설정이 발생하는 경우 핸들러를 설정합니다.

클라이언트 재설정이 발생하는 경우 핸들러를 설정합니다.

String urlPrefix
)

MongoDB Realm에 대한 동기화 연결을 시작하는 WebSocket 요청의 경로 앞에 추가되는 접두사입니다.

이 옵션을 설정하면 Realm이 처음 열릴 때 서버에서 알려진 모든 변경 사항을 다운로드하게 됩니다.

이 옵션을 설정하면 Realm이 처음 열릴 때 서버에서 알려진 모든 변경 사항을 다운로드하게 됩니다.

  • 클래스 java.lang.Object 에서 상속된 메서드 : getClass , hashCode , equals , clone , toString , notify , notifyAll , wait , wait , wait , finalize

public Builder (
User user
)

지정된 사용자와의 Flexible Sync SyncConfiguration 에 대한 빌더 인스턴스를 생성합니다.

매개변수

  • user - Realm 앱에 액세스하는 데 사용할 사용자입니다.

다음도 참조하세요.

  • Flexible Sync에 대한 자세한 내용은 {@link SubscriptionSet}를 참조하세요.

public Builder (
User user,
String partitionValue
)

지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더 인스턴스를 만듭니다.

매개변수

  • user - Realm 앱에 액세스하는 데 사용할 사용자입니다.

  • partitionValue - 동기화될 원격 Realm을 식별하는 파티션 값입니다.

public Builder (
User user,
ObjectId partitionValue
)

지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더 인스턴스를 만듭니다.

매개변수

  • user - Realm 앱에 액세스하는 데 사용할 사용자입니다.

  • partitionValue - 동기화될 원격 Realm을 식별하는 파티션 값입니다.

이미 정의된 모듈에 모듈을 추가합니다.
boolean allowQueriesOnUiThread
)

UI 스레드에서 RealmQueries 허용 여부를 설정합니다.

기본적으로 Realm은 메인 스레드에서 쿼리를 허용합니다. 그러나 이렇게 하면 애플리케이션에서 프레임 드롭이나 ANR이 발생할 수 있습니다. 쿼리를 UI가 아닌 스레드로 전환하거나 RealmQuery.findAllAsync () 또는 RealmQuery.findFirstAsync( ) 를 사용하는 것이 좋습니다.

boolean allowWritesOnUiThread
)

UI 스레드에서 Realm.executeTransaction 에 대한 호출을 허용할지 여부를 설정합니다.

경고: Realm은 사용자가 이 메서드를 명시적으로 옵트인하지 않는 한 메인 스레드에서 동기 트랜잭션을 실행하는 것을 허용하지 않습니다. executeTransaction 에 대한 호출을 UI가 아닌 스레드로 전환하거나 Realm.executeTransactionAsync 를 사용하는 것이 좋습니다.

Realm 을 처음 열 때 빈 파일을 생성하는 대신 제공된 자산 파일에서 Realm 파일을 복사하여 대신 사용합니다 Realm 서버에서 다운로드할 수 있습니다.

제공된 Realm 파일은 지정된 사용자에 대해 동기화된 유효한 Realm이어야 하며 Realm.writeCopyTo(File) 메서드 를 사용하여 생성된 것이어야 합니다. API.

경고: 이 작업은 시간이 오래 걸릴 수 있으므로 백그라운드 스레드에서 수행하는 것이 좋습니다.

매개변수

  • assetFile - 자산 데이터베이스 파일의 경로입니다.

스로우

빌더 매개변수를 기반으로 RealmConfiguration을 생성합니다.

반환

생성된 SyncConfiguration .

스로우

  • 불법적인 상태 예외 - 구성 매개변수가 유효하지 않거나 일관성이 없는 경우.

클라이언트 재설정이 발생하는 경우 핸들러를 설정합니다. 핸들러가 설정되지 않고 클라이언트 재설정이 발생하면 오류가 기록됩니다.

매개변수

  • handler - 클라이언트 재설정의 경우 사용자 지정 핸들러.

사용자에게 반환되기 전에 Realm 파일을 압축해야 하는지 여부를 결정하기 위해 설정합니다. 총 파일 크기(데이터 + 여유 공간)와 파일의 데이터가 사용한 바이트가 전달됩니다.

매개변수

  • compactOnLaunch - 프로세스 수명 동안 처음으로 Realm을 열 때 사용자에게 반환되기 전에 압축해야 하는지 여부를 결정하기 위해 호출되는 콜백입니다. 총 파일 크기(데이터 + 여유 공간)와 파일의 데이터가 사용한 바이트가 전달됩니다.

Realm 파일이 너무 커져서 상당한 양의 공간을 복구할 수 있는 경우 Realm 파일을 압축하게 됩니다. 자세한 내용은 DefaultCompactOnLaunchCallback 을 참조하세요.

Realm 파일을 암호화하고 해독하는 데 사용되는 io.realm.Realm#ENCRYPTION_KEY_LENGTH 바이트 키를 설정합니다.

매개변수

  • key - 암호화 키.

스로우

이 구성에서 사용하는 오류 핸들러를 설정합니다. 정의된 SyncPolicy 에서 처리되지 않은 오류만 이 오류 핸들러에 보고됩니다.

매개변수

  • errorHandler - Realm Object Server와 통신할 때 오류를 다시 보고하는 데 사용되는 error handler입니다.

스로우

Realm 객체에서 코루틴 Flow를 만드는 데 사용되는 FlowFactory 를 설정합니다. 기본 팩토리는 RealmFlowFactory 입니다.

매개변수

  • factory - 사용할 팩토리입니다.

이 옵션을 설정하면 디스크에 저장하는 대신 인메모리 Realm이 생성됩니다. 메모리가 부족한 경우 인메모리 Realm은 여전히 디스크 공간을 사용할 수 있지만 Realm이 닫히면 인메모리 Realm에서 생성된 모든 파일이 삭제됩니다. 인메모리 Realm은 지속되지 않으므로 다음을 확인해야 합니다. 데이터를 지속하려는 한 특정 이름의 메모리 내 Realm 객체에 대한 비폐쇄 참조를 하나 이상 보유합니다.

io.realm.Realm 에 초기 데이터를 설정합니다. 이 트랜잭션은 Realm 파일을 처음 열 때(생성될 때) 또는 RealmConfiguration.Builder.deleteRealmIfMigrationNeeded() 가 설정된 경우 데이터를 마이그레이션하는 동안에만 실행됩니다.

매개변수

  • transaction - 실행할 트랜잭션입니다.

io 의 초기 구독 을 설정합니다. 영역. Realm . 이 작업은 Realm 파일 을 처음 열 때(그리고 파일 이 생성될 때)에만 실행됩니다. waitForInitialRemoteData() 도 구성한 경우 모든 구독 데이터가 업로드될 때까지 영역 파일 이 완전히 열리지 않습니다.

매개변수

IllegalStateException 이 발생하기 전에 Realm 파일의 최대 라이브 버전 수를 설정합니다. 더 많은 데이터를 쓰려고 할 때 발생합니다.

Realm은 다양한 버전의 Realm 객체를 동시에 처리할 수 있습니다. 이는 Realm이 여러 다른 스레드에서 열려 있거나 데이터가 파일에 기록되는 동안 객체를 동결하는 경우 발생할 수 있습니다.

정상적인 상황에서는 문제가 되지 않지만 활성 버전 수가 너무 많아지면 디스크의 파일 크기에 부정적인 영향을 미칩니다. 따라서 이 매개변수를 설정하면 매우 큰 Realm이 발생할 수 있는 Realm 사용을 방지할 수 있습니다.

참고로 이 장치에 다른 장치의 변경 사항이 통합되면 버전 번호도 증가하므로 활성 버전 수도 동일한 Realm에 쓰는 다른 장치가 수행하는 작업에 따라 달라집니다.

매개변수

  • number - 예외가 발생하기 전의 최대 활성 버전 수입니다.

다음도 참조하세요.

기존 모듈을 하나 이상의 RealmModule 로 대체합니다. 이 방법을 사용하면 이 Realm의 현재 스키마가 제공된 모듈에서 정의된 스키마로 대체됩니다.

프로젝트의 모든 Realm 클래스(종속성 제외)를 포함하는 기본 Realm 모듈에 대한 참고는 Realm.getDefaultModule() 을 사용하여 찾을 수 있습니다. 따라서 다음 코드를 사용하여 앱 프로젝트의 스키마와 라이브러리 종속성을 결합합니다.

builder.modules(Realm.getDefaultMode(), new MyLibraryModule());

매개변수

  • modules - 첫 번째 Realm 모듈(필수)의 모듈 목록입니다.

스로우

다음도 참조하세요.

Object baseModule,
java.lang.Object[] additionalModules
)

기존 모듈을 하나 이상의 RealmModule 로 대체합니다. 이 방법을 사용하면 이 Realm의 현재 스키마가 제공된 모듈에서 정의된 스키마로 대체됩니다.

프로젝트의 모든 Realm 클래스(종속성 제외)를 포함하는 기본 Realm 모듈에 대한 참고는 Realm.getDefaultModule() 을 사용하여 찾을 수 있습니다. 따라서 다음 코드를 사용하여 앱 프로젝트의 스키마와 라이브러리 종속성을 결합합니다.

builder.modules(Realm.getDefaultMode(), new MyLibraryModule());

매개변수

  • baseModule - 첫 번째 Realm 모듈(필수).

  • additionalModules - 추가 Realm 모듈

스로우

다음도 참조하세요.

이 장치에 있는 Realm 파일의 파일 이름을 설정합니다.

매개변수

  • filename - Realm 파일의 이름입니다.

이 값을 설정하면 Realm이 읽기 전용이 되며 이 Realm에 대한 모든 쓰기 트랜잭션(write transaction)이 실패하고 실패합니다(IllegalStateException ). .

이는 특히 initialData(Realm.Transaction) 가 읽기 전용 Realm과 함께 작동하지 않으며 이를 설정하면 불법적인 상태 예외(IllegalStateException )가 발생한다는 의미입니다. 던져지고 있습니다.

이 프로세스에서 Realm을 읽기 전용으로 표시하는 것은 Realm에만 적용됩니다. 다른 프로세스 및 기기는 여전히 Realm에 쓸 수 있습니다.

Realm 객체에서 Rx Observable을 생성하는 데 사용되는 RxObservableFactory 를 설정합니다. 기본 팩토리는 RealmObservableFactory 입니다.

매개변수

  • factory - 사용할 팩토리입니다.

long schemaVersion
)

Realm의 스키마 버전을 설정합니다. 동기화된 Realm은 수동 마이그레이션 없이 적용할 수 있는 추가 스키마 변경만 지원합니다. 스키마 버전은 기본 스토리지 계층에 인덱스를 제거하거나 추가하라는 표시로만 사용됩니다. 제공된 스키마 버전이 Realm 파일의 버전과 다른 경우 다시 계산됩니다. 경고: 여기에 삽입된 값이 Realm.getVersion() 에서 반환된 값과 동일하다는 보장은 없습니다. 동기화된 Realm의 특성으로 인해 이 값은 더 높을 수도 있고 더 낮을 수도 있습니다.

  • 이 schemaVersion이 사용된 후 Lesser schemaVersion 를 가진 다른 클라이언트가 처음으로 서버에 연결된 경우 이 값이 더 낮습니다.

  • 이 Realm이 생성된 후 더 높은 schemaVersion 을(를) 가진 다른 클라이언트가 서버에 연결되면 이 값이 더 높아집니다.

매개변수

  • schemaVersion - 스키마 버전입니다.

스로우

클라이언트 재설정이 발생할 때 처리기를 설정합니다. 핸들러가 설정되지 않은 경우 클라이언트 재설정이 발생하면 오류가 기록됩니다. 이 전략은 파티션 기반 동기화를 사용하는 동기화된 영역에만 사용할 수 있습니다. Flexible sync를 사용하는 Realm은 현재 syncClientResetStrategy(ManuallyRecoverUnsyncedChangesStrategy) 만 지원합니다.

매개변수

  • handler - 클라이언트 재설정의 경우 사용자 지정 원활한 손실 처리기.

클라이언트 재설정이 발생하는 경우 핸들러를 설정합니다. 핸들러가 설정되지 않고 클라이언트 재설정이 발생하면 오류가 기록됩니다.

매개변수

  • handler - 클라이언트 재설정의 경우 사용자 지정 수동 처리기.

MongoDB Realm에 대한 동기화 연결을 시작하는 WebSocket 요청의 경로 앞에 추가되는 접두사입니다. 지정된 값은 서버의 구성과 일치해야 하며, 그렇지 않으면 장치가 연결을 생성할 수 없습니다. 이 값은 선택 사항이며 특정 방화벽 규칙에 필요한 경우에만 설정해야 합니다.

매개변수

  • urlPrefix - 동기화 연결 URL에 추가할 접두사입니다.

이 값을 설정하면 Realm 이 처음 Realm 때 서버에서 알려진 모든 변경 사항을 다운로드하게 됩니다. 모든 데이터가 다운로드될 때까지 Realm이 열리지 않습니다. 즉, 장치가 오프라인 상태이면 Realm이 열리지 않습니다. 모든 변경 사항을 다운로드하는 것은 시간이 오래 걸리는 작업으로 UI 스레드를 차단할 수 있으므로 이 설정이 활성화된 Realm은 백그라운드 스레드에서 또는 Realm.getInstanceAsync(Realm.getInstanceAsync(RealmConfiguration, Realm.Callback) .

이 검사는 Realm 이 처음 생성될 때만 적용됩니다. Realm 에 최신 변경 사항이 있는지 확인하려면 SyncSession.downloadAllServerChanges() 를 사용하세요.

매개변수

이 값을 설정하면 Realm 이 처음 Realm 때 서버에서 알려진 모든 변경 사항을 다운로드하게 됩니다. 모든 데이터가 다운로드될 때까지 Realm이 열리지 않습니다. 즉, 장치가 오프라인 상태이면 Realm이 열리지 않습니다. 모든 변경 사항을 다운로드하는 것은 시간이 오래 걸리는 작업으로 UI 스레드를 차단할 수 있으므로 이 설정이 활성화된 Realm은 백그라운드 스레드에서 또는 Realm.getInstanceAsync(Realm.getInstanceAsync(RealmConfiguration, Realm.Callback) .

이 검사는 Realm 이 처음 생성될 때만 적용됩니다. Realm 에 최신 변경 사항이 있는지 확인하려면 SyncSession.downloadAllServerChanges() 를 사용하세요.

돌아가기

SyncConfiguration