サブスクライブ

paused fun <t : RealmObject> RealmQuery<t>.サブスクライブ(name : string updateExisting :ブール値= false モード: WaitForSync = WaitForSync.FIRST_TIME タイムアウト: duration = duration.INFINITE): RealmResults<t>

バックグラウンドでクエリから という名前のサブスクリプションを自動的に作成し、ローカルの Realm ファイルに対して同じクエリを実行した結果を返します。

これは、次のような操作を行うよりも効率的な代替手段です。

fun suspend getData(realm: Realm): RealmResults<Person> {
realm.subscriptions.update { bgRealm ->
add("myquery", bgRealm.query<Person>())
}
realm.subscriptions.waitForSynchronization()
return realm.query<Person>().find()
}

ローカル クエリを実行する前に、サーバーがすべてのデータを送信するまで待機するかどうかを定義できます。 これは関連しますが、レイテンシや大規模なデータセットをダウンロードする必要があるため、デバイスで利用可能なデータへのサブスクリプションの作成が遅れる可能性があります。

デフォルトの動作では、サブスクライブが初めて呼び出されると、サーバーからデータがダウンロードされるまでクエリ結果は返されません。 同じクエリをサブスクライブするための後続の呼び出しでは、クエリはローカル データベースで直ちに実行され、更新はバックグラウンドでダウンロードされます。

Return

ローカル Realm ファイルに対してクエリを実行した結果。 返される結果は、使用されたモードによって異なります。

パラメーター

name

サブスクライブの名前。 これは、 SubscriptionSetで後で識別するために使用できます。

モード

サブスクライブを解決するために使用されるモードです。 詳細については、「 WaitForSync 」を参照してください。

タイムアウト

サブスクリプションで定義されたオブジェクトをサーバーが返すまでの待機時間。 これは、 WaitForSync.ALWASおよびWaitForSync.FIRST_TIMEにのみ関連します。

スロー

TimeoutCancellationException

クエリ結果が返される前に、指定されたタイムアウトに達した場合。

Flexible Sync を使用していない Realm でこのメソッドが呼び出された場合。

サーバーがクエリのセットを受け入れなかった場合、。 正確な理由は 例外メッセージ を参照してください。


paused fun <t : RealmObject> RealmQuery<t>.サブスクライブ(モード : WaitForSync = WaitForSync.FIRST_TIME タイムアウト : = duration.INFINITE): RealmResults<t>
paused fun <t : RealmObject> RealmResults<t>.サブスクライブ(モード : WaitForSync = WaitForSync.FIRST_TIME タイムアウト : = duration.INFINITE): RealmResults<t>

バックグラウンドでローカル クエリの結果から匿名のサブスクリプションを自動的に作成し、Realm ファイルに対して同じクエリを再実行した結果を返します。 これは、サブスクライブを呼び出して名前付きバリアントを作成するのと同じように動作します。 具体的な動作の詳細については、このメソッドを参照してください。

Return

ローカル Realm ファイルに対してクエリを実行した結果。 返される結果は、使用されたモードによって異なります。

パラメーター

モード

サブスクライブを解決するために使用されるモードです。 詳細については、「 WaitForSync 」を参照してください。

タイムアウト

サブスクリプションで定義されたオブジェクトをサーバーが返すまでの待機時間。 これは、 WaitForSync.ALWASおよびWaitForSync.FIRST_TIMEにのみ関連します。

スロー

TimeoutCancellationException

クエリ結果が返される前に、指定されたタイムアウトに達した場合。

Flexible Sync を使用していない Realm でこのメソッドが呼び出された場合。


paused fun <t : RealmObject> RealmResults<t>.サブスクライブ(name : string updateExisting :ブール値= false モード: WaitForSync = WaitForSync.FIRST_TIME タイムアウト: duration = duration.INFINITE): RealmResults<t>

バックグラウンドでローカル クエリ結果から という名前のサブスクリプションを自動的に作成し、Realm ファイルに対して同じクエリを再実行した結果を返します。

これは、次のような操作を行うよりも効率的な代替手段です。

fun suspend getData(realm: Realm): RealmResults<Person> {
val results = realm.query<Person>().find()
realm.subscriptions.update { bgRealm ->
add("myquery", results.query(""))
}
realm.subscriptions.waitForSynchronization()
return realm.query<Person>().find()
}

ローカル クエリを実行する前に、サーバーがすべてのデータを送信するまで待機するかどうかを定義できます。 これは関連しますが、レイテンシや大規模なデータセットをダウンロードする必要があるため、デバイスで利用可能なデータへのサブスクリプションの作成が遅れる可能性があります。

デフォルトの動作では、サブスクライブが初めて呼び出されると、サーバーからデータがダウンロードされるまでクエリ結果は返されません。 同じクエリをサブスクライブするための後続の呼び出しでは、クエリはローカル データベースで直ちに実行され、更新はバックグラウンドでダウンロードされます。

Return

ローカル Realm ファイルに対してクエリを実行した結果。 返される結果は、使用されたモードによって異なります。

パラメーター

name

サブスクライブの名前。 これは、 SubscriptionSetで後で識別するために使用できます。

モード

サブスクライブを解決するために使用されるモードです。 詳細については、「 WaitForSync 」を参照してください。

タイムアウト

サブスクリプションで定義されたオブジェクトをサーバーが返すまでの待機時間。 これは、 WaitForSync.ALWASおよびWaitForSync.FIRST_TIMEにのみ関連します。

スロー

TimeoutCancellationException

クエリ結果が返される前に、指定されたタイムアウトに達した場合。

Flexible Sync を使用していない Realm でこのメソッドが呼び出された場合。

サーバーがクエリのセットを受け入れなかった場合、。 正確な理由は 例外メッセージ を参照してください。