2

我是 Realm 和 Android 开发的新手,正在尝试从 Atlas 查询文档。我能够成功地对用户进行身份验证,但是当我尝试执行查询时,我收到以下错误:E/REALM_JAVA: Session Error[wss://realm.mongodb.com/]: WRONG_PROTOCOL_VERSION(realm::sync::ProtocolError:105): sync client must have a sync protocol version of at least 3 to sync on this application, but found version 2. Please update your application to use a newer SDK

我目前正在开发 Android Realm SDK 和 Android SDK Platform 30 的 10.4.0 版本。我已经尝试寻找两者的更新,它说一切都是最新的。这是我的代码:

app.loginAsync(emailPasswordCredentials, it -> {
        if (it.isSuccess()) {
            Log.v("AUTH", "Successfully authenticated using an email and password.");
            User user = app.currentUser();
            String partitionValue = "object_id";
            SyncConfiguration config = new SyncConfiguration.Builder(
                    user,
                    partitionValue)
                    .allowQueriesOnUiThread(true)
                    .allowWritesOnUiThread(true)
                    .build();
            uiThreadRealm = Realm.getInstance(config);
            
            //Debugging - testing Realm Sync queries
            Products product = uiThreadRealm.where(Products.class).equalTo("_id", 4).findFirst();
            if (product != null) {
                Log.v("AUTH", product.toString());
            }
            Log.v("AUTH", config.toString());
            //In-App functions
 }

有没有人有办法解决这个问题?

4

2 回答 2

0

对于那些来自 react-native 并得到这种错误的人

同步客户端的同步协议版本必须至少为 3 才能在此应用程序上同步,但找到了版本 2。请更新您的应用程序以使用更新的 SDK

只需在您的终端中执行

npm install realm

然后

cd ios
pod install

小心破坏更改。

如果需要,然后在您的模拟器/模拟器上卸载您的应用程序

npx react-native run-ios

或者

npx react-native run-android

所以对于Android,我猜你也必须更新你的Realm包......

于 2021-08-11T09:04:12.077 回答
0

在我的情况下,这是由于选择 UUID 作为我的字段的类型,即“目前不是 SDK 中支持的类型,但它将在未来的版本中。” (来自 Monogo 的支持)。

于 2021-04-29T01:56:36.093 回答