Menu Docs

Página inicial do DocsDesenvolver aplicaçõesAtlas Device SDKs

Sincronizar dados entre dispositivos - Java SDK

Nesta página

  • Flexible Sync
  • Sincronizar dados
  • Atualizações de grupo para melhorar o desempenho

O Atlas Device Sync sincroniza automaticamente os dados entre aplicativos cliente e um backend do Atlas App Services. Quando um dispositivo cliente está online, o Sync sincroniza de forma assíncrona os dados em um thread em background entre o dispositivo e seu aplicativo de backend.

Dica

Veja também:

Quando você seleciona Flexible Sync para a configuração do aplicativo de backend, a implementação do cliente deve incluir assinaturas para queries em campos consultáveis. O Flexible Sync funciona sincronizando dados que correspondem às assinaturas de query que você mantém no aplicativo cliente.

Um conjunto de assinaturas contém um conjunto de queries. O Realm Flexible Sync retorna documentos correspondentes a essas queries, onde o usuário tem as permissões apropriadas para ler e/ou ler e gravar os documentos. Se os documentos corresponderem à query, mas o cliente não tiver permissão para lê-los ou gravá-los, eles não serão sincronizados com o aplicativo cliente.

Você pode formar queries usando a Linguagem de Query de Realm.

Observação

O Flexible Sync não é compatível com todos os operadores de consulta disponíveis na Linguagem de Query de Realm e no mecanismo de consulta do SDK. Consulte Limitações flexíveis do RQL de sincronização para obter detalhes.

Os conjuntos de assinaturas são baseados em um tipo específico de objeto Realm. Você pode ter várias assinaturas se tiver muitos tipos de objetos do Realm.

Para usar o Flexible Sync em seu aplicativo cliente, abra um domínio sincronizado com uma configuração de Flexible Sync. Em seguida, gerencie assinaturas para determinar quais documentos sincronizar.

A sintaxe para ler, gravar e observar alterações em um domínio sincronizado é idêntica à sintaxe para domínios não sincronizados. Enquanto você trabalha com dados locais, um thread em segundo plano integra, carrega e baixa conjuntos de alterações de forma eficiente.

Importante

Ao usar a sincronização, evite gravações no thread principal

O fato de o Realm realizar integrações de sincronização em um thread em segundo plano significa que, se você escrever em seu realm no thread principal, há uma pequena chance de sua interface do usuário parecer travar enquanto espera que o thread de sincronização em segundo plano termine uma transação de escrita. Portanto, é uma prática recomendada nunca escrever no thread principal ao usar a Sincronização.

Cada transação de escrita para um conjunto de assinaturas tem um custo de desempenho. Se você precisar fazer várias atualizações em um objeto do Realm durante uma sessão, considere manter objetos editados na memória até que todas as alterações sejam concluídas. Isso melhora o desempenho da sincronização, gravando apenas o objeto completo e atualizado em seu domínio, em vez de cada alteração.

← Managed chaves de API do usuário - Java SDK