错误:路径“ /var/.../default.realm”的领域已在具有不同模式的当前线程上打开

Fri*_*bot 5 realm

尝试Realm.open({schema: [Schema]})在iOS设备/模拟器上的新版本/安装上执行此错误。一切都在Android应用程序上运行良好,因为它以前从未通过迁移进行过更改schemaVersions。

我的这个错误的理解是,在设备上的文件境界的schemaVersion是从默认不同schemaVersion: 0Realm.open({schema: [Schema]})。我有另一个理论是,我的应用程序正在尝试在同一文件上现有的已打开Realm配置期间打开Realm配置。

为了解决我的第一个理论,我一直在努力的境界文件重置与Realm.clearTestState()Realm.deleteFile({schema: [Schema]})无济于事。第二,我将并发Realm.open()实例放入setTimeout()其中,以便一次仅打开一个Realm实例。

我还有其他方法可以尝试重置Realm文件,以便设备上的Realm文件和配置都相同。

Fri*_*bot 8

事实证明,我并不是在每个实例中都使用完全相同的架构来打开Realm。这意味着我正在从realm.js文件中导出多个对象模式,并分别而不是整体打开它们,我认为这是正确的方法。

所以基本上,我正在这样做...

Realm.open({schema: [object1, object2, object3]})
Realm.open({schema: [object4, object5]})
Run Code Online (Sandbox Code Playgroud)

当我应该这样做时:

const Schema = [object1, object2, object3, object4, object5];
Realm.open({schema: Schema});
Run Code Online (Sandbox Code Playgroud)

希望这对其他遇到此问题的人有所帮助,因为我在Github和StackOverflow上访问过其他所有类似的错误报告,并且没有碰到此提示。