EventConfiguration

@frozen
public struct EventConfiguration : Sendable

Realm 事件记录的配置参数。

通过将Realm.Configuration.eventConfiguration设置为任何非零的EventConfiguration来启用 Realm 事件记录。 默认初始化的配置是有效的,但某些属性可能需要自定义。

使用 Realm 事件记录需要在您将向其写入事件的应用的服务器上定义的模式中包含集合AuditEvent 。 模式必须包含以下字段:

  • _id: ObjectId
  • activity: String
  • event: String?
  • data: String?
  • timestampDate String?此外,每个使用的元数据键都必须有一个字段。
  • 附加到生成的每个事件的元数据。 元数据字典中的每个键都存储在事件Realm中具有该名称的列中,因此在服务器上为 AuditEvent集合配置的模式必须包括将使用的所有元数据字段。 在服务器端模式中,元数据字段的类型必须为String?

    声明

    Swift

    public var metadata: [String : String]?
  • 用于写入事件数据的同步用户。 如果未提供,则将使用正在跟踪的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)