领域错误无写入订阅:当进行不同类型的多个订阅时

问题描述 投票:0回答:1

我正在尝试借助以下函数来配置领域。最初,在添加 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")
        }
    }

我已经尝试终止同步然后再次启用它。但同样的错误正在发生。

android mongodb kotlin realm mongodb-atlas
1个回答
0
投票

我可能遇到了像你一样的问题。就我而言,我使用了一个模板应用程序,该应用程序使用 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'

我删除了包含这两个文件夹的文件夹,在启动应用程序时,这两个文件夹都会产生异常。但是卸载并安装后它按预期工作,这样我就可以根据我的新方案写入数据成功写入数据库。

希望对您也有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.