我正在尝试借助以下函数来配置领域。最初,在添加 ApplicationAccount 类后,在写入 EmailAccount 集群时只有 EmailAccount 类,它正在工作,但对于 ApplicationAccount 来说,它表示 在未创建灵活同步订阅时无法写入 ApplicationAccount 类。
如何解决这个问题?
override fun configureTheRealm() {
if (user != null) {
val config = SyncConfiguration.Builder(user, setOf(EmailAccount::class, ApplicationAccount::class))
.initialSubscriptions { sub ->
add(
query = sub.query<EmailAccount>("ownerId == $0", user.id),
name = "User's EmailAccounts"
)
add(
query = sub.query<ApplicationAccount>("ownerId == $0", user.id),
name = "User's Application Account"
)
}
.log(LogLevel.ALL)
.build()
realm = Realm.open(config)
Log.d("USERID", "$user")
}
}
我已经尝试终止同步然后再次启用它。但同样的错误正在发生。
我可能遇到了像你一样的问题。就我而言,我使用了一个模板应用程序,该应用程序使用 Mongo DeviceSync 和已定义的方案。
它按预期工作,然后我尝试通过添加更多方案来扩展给定模板,并根据新定义的方案将一些数据写入数据库。
我确信我的初始订阅设置正确(与您的类似,但使用空查询来获取给定方案的任何对象),但是当写入领域时,我得到了与您相同的错误。经过更多测试后,我在日志中发现了以下内容:
2024-03-24 14:52:24.599 17968-18031 REALM com.mongodb.app W [Sdk] Client reset: manual reset required for Realm in '/data/user/0/com.mongodb.app/files/mongodb-realm/mundguttest-dzyhi/65fe7ef60e4fa01f99d57222/default.realm'
2024-03-24 14:52:24.600 17968-18009 REALM com.mongodb.app W [Sdk] Client reset: manual reset required for Realm in '/data/user/0/com.mongodb.app/files/mongodb-realm/mundguttest-dzyhi/65fe7ef60e4fa01f99d57222/default.realm.fresh'
我删除了包含这两个文件夹的文件夹,在启动应用程序时,这两个文件夹都会产生异常。但是卸载并安装后它按预期工作,这样我就可以根据我的新方案写入数据成功写入数据库。
希望对您也有帮助。