EventConfiguration

@frozen
public struct EventConfiguration : Sendable

Realm 이벤트 기록을 위한 구성 매개변수입니다.

Realm 이벤트 기록을 활성화하려면 Realm.Configuration.eventConfiguration 을 nil이 아닌 EventConfiguration 로 설정합니다. 기본값으로 초기화된 구성은 유효하지만 일부 속성을 사용자 지정해야 할 수 있습니다.

Realm 이벤트 기록을 사용하려면 이벤트를 기록할 앱의 서버에 정의된 스키마에 collection AuditEvent 을 포함해야 합니다. 스키마에는 다음 필드가 포함되어야 합니다.

  • _id: ObjectId
  • activity: String
  • event: String?
  • data: String?
  • timestamp: Date 또한 사용된 각 메타데이터 키에 대해 String? 필드가 있어야 합니다.
  • 생성된 각 이벤트 에 첨부되는 메타데이터입니다. 메타데이터 사전의 각 키는 이벤트 Realm 에서 해당 이름이 있는 열에 저장되므로 AuditEvent 컬렉션 을 위해 서버 에 구성된 스키마 에는 사용할 모든 메타데이터 필드가 포함되어야 합니다. 메타데이터 필드는 서버 측 스키마 에서 String? 유형이어야 합니다.

    선언

    Swift

    public var metadata: [String : String]?
  • 이벤트 데이터를 쓰기 (write) 동기화 사용자입니다. 지정하지 않으면 추적 중인 Realm 의 사용자가 사용됩니다. 원하는 경우 추적 중인 Realm 과 다른 App 와 연결된 User 일 수 있습니다.

    사용자는 파티션 기반 동기화 앱 과 연결되어 있어야 합니다. 추적된 Realm 이 flexible 동기화 를 사용하는 경우 이 필드 를 PBS 사용자로 설정해야 합니다.

    선언

    Swift

    public var syncUser: User?
  • 이벤트 데이터를 서버 에 업로드하는 데 사용되는 무작위로 생성된 파티션 값 앞에 추가되는 string 입니다. 이벤트 파티션을 애플리케이션 에서 사용하는 파티션과 구분할 수 있도록 이 값을 사용자 지정할 수 있습니다.

    선언

    Swift

    public var partitionPrefix: String
  • 로거 콜백 함수입니다. 이 함수는 여러 스레드에서 동시에 호출될 수 있으므로 스레드로부터 안전해야 합니다.

    선언

    Swift

    public typealias LoggerFunction = @Sendable (SyncLogLevel, String) -> Void
  • 배경 이벤트 스레드에서 수행된 작업에 대한 정보를 보고하기 위해 호출되는 로거입니다. nil 인 경우 이는 대신 SyncManager의 로거에 보고됩니다.

    선언

    Swift

    @preconcurrency
    public var logger: LoggerFunction?
  • 이벤트 데이터를 업로드할 때 동기화 오류가 발생하면 호출되는 오류 핸들러입니다. nil 인 경우 오류가 기록된 다음 abort() 이(가) 호출됩니다. 오류로 중단하려는 경우가 아니라면 프로덕션 사용에서는 항상 사용자 지정 오류 처리기를 정의해야 합니다.

    선언

    Swift

    @preconcurrency
    public var errorHandler: (@Sendable (Swift.Error) -> Void)?
  • Realm 이벤트 기록을 활성화하는 EventConfiguration 를 만듭니다.

    선언

    Swift

    @preconcurrency
    public init(metadata: [String: String]? = nil, syncUser: User? = nil,
                partitionPrefix: String = "events", logger: LoggerFunction? = nil,
                errorHandler: (@Sendable (Swift.Error) -> Void)? = nil)