待機する最初の リモート データ の場合

fun waitForInitial remoteData(タイムアウト : = duration.INFINITE): SyncConfiguration.Builder

これを設定すると、Realm が初めて開かれたときに、Realm はサーバーからすべての既知の変更をダウンロードします。 すべてのデータがダウンロードされるまで、Realm は開きません。 つまり、デバイスがオフラインの場合、Realm は開きません。

すべての変更をダウンロードするには、UI スレッドをブロックする可能性のある長時間の操作が含まれる可能性があるため、この設定が有効になっている Realm はバックグラウンド スレッドでのみ開く必要があります。

このチェックは、 initialSubscriptionsrerunOnOpen = trueで構成されている場合を除き、Realm が初めて作成されたときにのみ強制されます。 その場合、Realm を開くたびにサーバー データがダウンロードされます。

サーバー データをダウンロードするタイミングが条件付きの場合、これはSyncSession . DownloadAllServerChecks を通じて制御できます たとえば、次のようになります。

val user = loginUser()
val config = SyncConfiguration.Builder(user, schema)
.initialSubscriptions { realm ->
add(realm.query<City>())
}
.build()
val realm = Realm.open(config)
if (downloadData) {
realm.syncSession.downloadAllServerChanges(timeout = 30.seconds)
}

パラメーター

タイムアウト

Realm を開くときにio.realm.kotlin.mongodb.Exceptions.DownloadingRealmTimeOutExceptionがスローされる前に、ダウンロードが完了するまでの待機時間。