SyncConfiguration 类


  • public class SyncConfiguration
    extends RealmConfiguration
    SyncConfiguration用于设置 Realm 数据库,该数据库可在使用 MongoDB Realm 的设备之间进行同步。

    User创建 需要有效的SyncConfiguration }。有关如何获取用户对象的更多信息,请参阅CredentialsApp.loginAsync(Credentials, App.Callback)

    最小的SyncConfiguration如下所示。

     
     App app = new App("app-id");
     User user = app.login(Credentials.anonymous());
     SyncConfiguration config = SyncConfiguration.defaultConfiguration(user, "partition-value");
     Realm realm = Realm.getInstance(config);
     
     

    同步 Realm 仅支持可自动检测和执行的附加迁移,因此与普通 Realm 相比,无法访问以下构建器选项:

    • deleteRealmIfMigrationNeeded()
    • migration(Migration)
    与普通的非同步 Realm 一样,同步 Realm 也可以使用Realm.getInstance(RealmConfiguration)Realm.getDefaultInstance()创建。
    另请参阅:
    有关同步的更多信息,请参阅Docs
    • 方法详细信息

      • forRecovery

        public static RealmConfiguration forRecovery​(String canonicalPath,
                                                     @Nullable
                                                     byte[] encryptionKey,
                                                     @Nullable
                                                     Object... modules)
        返回适用于打开只读、非同步 Realm 的RealmConfiguration ,以恢复任何待处理的更改。 这在尝试打开备份/恢复 Realm 时(客户端重置后)非常有用。
        参数:
        canonicalPath - 此配置定义的 Realm 文件的绝对路径。
        encryptionKey - 用于加密/解密 Realm 文件的密钥。
        modules - 如果指定,则会将 Realm 模式限制为所提供的模块。
        返回:
        可离线使用的 RealmConfiguration
      • defaultConfig

        public static SyncConfiguration defaultConfig​(User user)
        返回给定用户的默认Flexible Sync配置。
        参数:
        user - 用于访问 Realm 应用的用户。
        返回:
        给定用户的默认Flexible Sync配置。
      • defaultConfig

        public static SyncConfiguration defaultConfig​(User user,
                                                      @Nullable
                                                      String partitionValue)
        返回给定用户和分区值的默认基于分区的同步配置。
        参数:
        user - 用于访问 Realm 应用的用户。
        partitionValue — 标识将同步的远程 Realm 的分区值。
        返回:
        给定用户和分区值的默认配置。
      • defaultConfig

        public static SyncConfiguration defaultConfig​(User user,
                                                      @Nullable
                                                      Long partitionValue)
        返回给定用户和分区值的默认基于分区的同步配置。
        参数:
        user - 用于访问 Realm 应用的用户。
        partitionValue — 标识将同步的远程 Realm 的分区值。
        返回:
        给定用户和分区值的默认配置。
      • defaultConfig

        public static SyncConfiguration defaultConfig​(User user,
                                                      @Nullable
                                                      Integer partitionValue)
        返回给定用户和分区值的默认基于分区的同步配置。
        参数:
        user - 用于访问 Realm 应用的用户。
        partitionValue — 标识将同步的远程 Realm 的分区值。
        返回:
        给定用户和分区值的默认配置。
      • defaultConfig

        public static SyncConfiguration defaultConfig​(User user,
                                                      @Nullable
                                                      ObjectId partitionValue)
        返回给定用户和分区值的默认基于分区的同步配置。
        参数:
        user - 用于访问 Realm 应用的用户。
        partitionValue — 标识将同步的远程 Realm 的分区值。
        返回:
        给定用户和分区值的默认配置。
      • defaultConfig

        public static SyncConfiguration defaultConfig​(User user,
                                                      @Nullable
                                                      UUID partitionValue)
        返回给定用户和分区值的默认基于分区的同步配置。
        参数:
        user - 用于访问 Realm 应用的用户。
        partitionValue — 标识将同步的远程 Realm 的分区值。
        返回:
        给定用户和分区值的默认配置。
      • forRecovery

        public static RealmConfiguration forRecovery​(String canonicalPath)
        返回适用于打开只读、非同步 Realm 的RealmConfiguration ,以恢复任何待处理的更改。 这在尝试打开备份/恢复 Realm 时(客户端重置后)非常有用。 注意:这将使用默认的 Realm 模块(由所有RealmModel组成),并假设不应使用加密。
        参数:
        canonicalPath - 此配置定义的 Realm 文件的绝对路径。
        返回:
        可离线使用的 RealmConfiguration
      • getUser

        public User getUser()
        返回用户。
        返回:
        用户。
      • getServerUrl

        公共URI getServerUrl()
        返回与本地 Realm 同步的远程 MongoDB Realm 的服务器 URI。
        返回:
        URI 标识与此本地 Realm 同步的 MongoDB Realm。
      • getErrorHandler

        public SyncSession.ErrorHandler getErrorHandler()
        返回此SyncConfiguration的错误处理程序。
        返回:
        错误处理程序。
      • getSyncClientResetStrategy

        public SyncClientResetStrategy getSyncClientResetStrategy()
        返回此SyncConfiguration的同步客户端重置策略。
        返回:
        同步客户端重置策略。
      • shouldDeleteRealmOnLogout

        公共布尔shouldDeleteRealmOnLogout()
        如果在拥有该文件的User注销后必须删除该 Realm 文件,则返回true
        返回:
        true 如果User注销则必须删除 Realm 文件。 如果允许保留文件,则为false
      • shouldWaitForInitialRemoteData

        public boolean shouldWaitForInitialRemoteData()
        如果 Realm 在首次打开之前从远程服务器下载所有已知更改,则返回true
        返回:
        true 是否在打开 Realm 之前下载所有远程更改。 如果可以立即打开 Realm,则为false
      • getSessionStopPolicy

        public io.realm.internal.OsRealmConfig.SyncSessionStopPolicy getSessionStopPolicy()
        注意:仅供内部使用。 可能会在没有警告的情况下发生更改。 关闭 Realm 后,返回该 Realm 的会话的停止策略。
        返回:
        Realm 关闭后会话使用的停止策略。
      • getUrlPrefix

        @Nullable public String getUrlPrefix()
        返回与 Realm 对象服务器建立同步连接时使用的 url 前缀。
      • getPartitionValue

        public BsonValue getPartitionValue()
        返回此 Realm 分区所依据的值。 分区键是 MongoDB Realm 中定义的一个属性。 所有具有此值的属性的类都将同步到 Realm。
        返回:
        MongoDB Realm 用于将服务器端 MongoDB 数据库分区为可独立同步的 Realm 的值。
        抛出异常:
        IllegalStateException - 如果此配置用于配置为 Flexible Sync 的域。您可以在调用此方法之前使用isPartitionBasedSyncConfiguration()进行检查。
      • isFlexibleSyncConfiguration

        public boolean isFlexibleSyncConfiguration()
        返回此配置是否用于打开为Flexible Sync配置的 Realm。
        返回:
        true 如果此配置用于 Flexible Sync Realm,则返回false
      • isPartitionBasedSyncConfiguration

        public boolean isPartitionBasedSyncConfiguration()
        返回此配置是否用于打开为基于分区的同步配置的 Realm。
        返回:
        true 如果此配置用于基于分区的 Sync Realm,则返回false