se inscrever

Suspender Diversão <t : RealmObject> RealmQuery<t>.se inscrever(name: String, updateExisting: Boolean = false, modo: StandForSync = StandForSync.FIRST_TIME, timeout: Duration = Duration.INfinite): RealmResults<t>

Crie automaticamente uma Assinatura nomeada a partir de uma query em segundo plano e retorne o resultado da execução da mesma query no Arquivo de Realm local.

Esta é uma alternativa mais simplificada do que fazer algo assim:

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

É possível definir se deve ou não aguardar o servidor enviar todos os dados antes de executar a query local. Isso é relevante, pois pode haver atraso na criação de uma assinatura para os dados disponíveis no dispositivo devido à latência ou porque um grande conjunto de dados precisa ser baixado.

O comportamento padrão é que, na primeira vez em que a assinatura for chamada, o resultado da query não será retornado até que os dados sejam baixados do servidor. Em chamadas subsequentes para assinar a mesma query, a query será executada imediatamente no reconhecimento de data center local enquanto as atualizações são baixadas em segundo plano.

Return

O resultado da execução da query no Arquivo de Realm local. Os resultados retornados dependerão de qual modo foi usado.

Parâmetros

name

nome da assinatura. Isso pode ser usado para identificá-lo mais tarde no SubscriptionSet.

Modo

modo usado para resolver a assinatura. Consulte StandForSync para obter mais detalhes.

timeout

Quanto tempo esperar para que o servidor retorne os objetos definidos pela assinatura. Isso só é relevante para waitForSync.ALways e waitForSync.FIRST_TIME.

Lança

Exceçãode cancelamento detempo limite

se o tempo limite especificado foi atingido antes que um resultado de query possa ser retornado.

se esse método for chamado em um Realm que não esteja usando o Flexible Sync.

se o servidor não aceitou o conjunto de query. O motivo exato é encontrado na mensagem de exceção.


Suspender Diversão <t : RealmObject> RealmQuery<t>.se inscrever(modo: StandForSync = WaterForSync.FIRST_TIME, timeout: Duration = Duration.INfinite): RealmResults<t>
Suspender Diversão <t : RealmObject> RealmResults<t>.se inscrever(modo: StandForSync = WaterForSync.FIRST_TIME, timeout: Duration = Duration.INfinite): RealmResults<t>

Criar automaticamente uma assinatura anônima a partir de um resultado de query local em segundo plano e retornar o resultado de executar novamente a mesma query no Arquivo de Realm. Isso se comporta da mesma forma que criar uma variante nomeada chamando Subscribe. Consulte este método para obter detalhes sobre o comportamento exato.

Return

O resultado da execução da query no Arquivo de Realm local. Os resultados retornados dependerão de qual modo foi usado.

Parâmetros

Modo

modo usado para resolver a assinatura. Consulte StandForSync para obter mais detalhes.

timeout

Quanto tempo esperar para que o servidor retorne os objetos definidos pela assinatura. Isso só é relevante para waitForSync.ALways e waitForSync.FIRST_TIME.

Lança

Exceçãode cancelamento detempo limite

se o tempo limite especificado foi atingido antes que um resultado de query possa ser retornado.

se esse método for chamado em um Realm que não esteja usando o Flexible Sync.


Suspender Diversão <t : RealmObject> RealmResults<t>.se inscrever(name: String, updateExisting: Boolean = false, modo: StandForSync = StandForSync.FIRST_TIME, timeout: Duration = Duration.INfinite): RealmResults<t>

Crie automaticamente uma Assinatura nomeada a partir de um resultado de query local em segundo plano e retorne o resultado de executar novamente a mesma query no Arquivo de Realm.

Esta é uma alternativa mais simplificada do que fazer algo assim:

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()
}

É possível definir se deve ou não aguardar o servidor enviar todos os dados antes de executar a query local. Isso é relevante, pois pode haver atraso na criação de uma assinatura para os dados disponíveis no dispositivo devido à latência ou porque um grande conjunto de dados precisa ser baixado.

O comportamento padrão é que, na primeira vez em que a assinatura for chamada, o resultado da query não será retornado até que os dados sejam baixados do servidor. Em chamadas subsequentes para assinar a mesma query, a query será executada imediatamente no reconhecimento de data center local enquanto as atualizações são baixadas em segundo plano.

Return

O resultado da execução da query no Arquivo de Realm local. Os resultados retornados dependerão de qual modo foi usado.

Parâmetros

name

nome da assinatura. Isso pode ser usado para identificá-lo mais tarde no SubscriptionSet.

Modo

modo usado para resolver a assinatura. Consulte StandForSync para obter mais detalhes.

timeout

Quanto tempo esperar para que o servidor retorne os objetos definidos pela assinatura. Isso só é relevante para waitForSync.ALways e waitForSync.FIRST_TIME.

Lança

Exceçãode cancelamento detempo limite

se o tempo limite especificado foi atingido antes que um resultado de query possa ser retornado.

se esse método for chamado em um Realm que não esteja usando o Flexible Sync.

se o servidor não aceitou o conjunto de query. O motivo exato é encontrado na mensagem de exceção.