订阅
在后台通过查询自动创建命名订阅,并返回对本地 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()
}
可以定义是否等待服务器发送所有数据后再运行本地查询。 这是相关的,因为由于延迟或需要下载大型数据集,从创建订阅到设备上可用数据可能会有延迟。
默认行为是,首次调用订阅时,只有从服务器下载数据后才会返回查询结果。 在后续调用订阅同一查询时,该查询将立即在本地数据库上运行,同时在后台下载所有更新。
返回
针对本地 Realm 文件运行查询的结果。 返回的结果取决于使用的模式。
参数
订阅的名称。 这可用于稍后在SubscriptionSet中进行识别。
用于解析订阅的模式。 有关更多详细信息,请参阅WaitForSync 。
等待服务器返回订阅定义的对象的时间。 这只与WaitForSync.ALWAYS和WaitForSync.FIRST_TIME相关。
抛出异常
在返回查询结果之前达到指定的超时时间。
如果在未使用 Flexible Sync 的 Realm 上调用此方法。
如果服务器不接受该组查询。 确切原因可在异常消息中找到。
在后台从本地查询结果自动创建匿名订阅,并返回对 Realm 文件重新运行相同查询的结果。 其行为与通过调用subscribe创建命名变体的行为相同。 有关确切行为的详细信息,请参阅此方法。
返回
针对本地 Realm 文件运行查询的结果。 返回的结果取决于使用的模式。
参数
用于解析订阅的模式。 有关更多详细信息,请参阅WaitForSync 。
等待服务器返回订阅定义的对象的时间。 这只与WaitForSync.ALWAYS和WaitForSync.FIRST_TIME相关。
抛出异常
在返回查询结果之前达到指定的超时时间。
如果在未使用 Flexible Sync 的 Realm 上调用此方法。
在背景从本地查询结果自动创建命名订阅,并返回对 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()
}
可以定义是否等待服务器发送所有数据后再运行本地查询。 这是相关的,因为由于延迟或需要下载大型数据集,从创建订阅到设备上提供可用数据可能会出现延迟。
默认行为是,首次调用订阅时,只有从服务器下载数据后才会返回查询结果。 在后续调用订阅同一查询时,该查询将立即在本地数据库上运行,同时在后台下载所有更新。
返回
针对本地 Realm 文件运行查询的结果。 返回的结果取决于使用的模式。
参数
订阅的名称。 这可用于稍后在SubscriptionSet中进行识别。
用于解析订阅的模式。 有关更多详细信息,请参阅WaitForSync 。
等待服务器返回订阅定义的对象的时间。 这只与WaitForSync.ALWAYS和WaitForSync.FIRST_TIME相关。
抛出异常
在返回查询结果之前达到指定的超时时间。
如果在未使用 Flexible Sync 的 Realm 上调用此方法。
如果服务器不接受该组查询。 确切原因可在异常消息中找到。