se inscrever
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
nome da assinatura. Isso pode ser usado para identificá-lo mais tarde no SubscriptionSet.
modo usado para resolver a assinatura. Consulte StandForSync para obter mais detalhes.
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
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.
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 usado para resolver a assinatura. Consulte StandForSync para obter mais detalhes.
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
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.
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
nome da assinatura. Isso pode ser usado para identificá-lo mais tarde no SubscriptionSet.
modo usado para resolver a assinatura. Consulte StandForSync para obter mais detalhes.
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
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.