sincronização baseada em partição - Node.js SDK
Nesta página
O Atlas Device Sync tem dois modos de sincronização: Flexible Sync e sincronização baseada em partição. Recomendamos usar o Flexible Sync. As informações nesta página são para oferecer suporte aos usuários que têm aplicativos existentes que usam a sincronização baseada em partição.
Observação
Combinando Modos de Sincronização com o Atlas Device Sync
Quando você usa o Atlas Device Sync em seu aplicação cliente , sua implementação deve corresponder ao modo de sincronização selecionado em sua configuração de aplicativo de backend. Você só pode usar um modo de sincronização para o seu aplicação. Você não pode misturar a sincronização baseada em partição e a Flexible Sync no mesmo aplicativo.
Valor da partição
Quando você seleciona sincronização baseada em partição para a configuração do aplicativo de backend, a implementação do cliente deve incluir um valor da partição}. Esse é o valor do campo da chave da partição que você seleciona ao configurar a sincronização baseada em partição.
O valor da partição determina quais dados o aplicativo cliente pode acessar.
Você passa no valor da partição quando abre um Realm sincronizado.
Abra um domínio sincronizado baseado em partição
Para abrir um Realm com a sincronização baseada em partição, chame Realm.open(). Passe um objeto de configuração , que deve incluir a propriedade sync
definindo um objeto SyncConfiguration . No SyncConfiguration, você deve incluir incluir user
e partitionValue
.
const config = { schema: [Car], sync: { user: app.currentUser, partitionValue: "myPartition", }, }; const realm = await Realm.open(config);
const config: Realm.Configuration = { schema: [Car], sync: { user: app.currentUser!, partitionValue: "myPartition", }, }; const realm = await Realm.open(config);
Importante
O login offline é suportado para configurações de sincronização baseada em partição Você pode abrir um Realm imediatamente com a sincronização em segundo plano ou após um tempo limite usar a sincronização baseada em partição.
Abra um Realm de sincronização baseada em partição
Ao abrir um domínio sincronizado agrupado que usa a sincronização baseada em partição, você deve usar a mesma chave de partição que foi usada na configuração original do domínio. Se você usar uma chave da partição diferente, o SDK emitirá um erro ao abrir o Realm.
Migrar da sincronização baseada em partição para a Flexible Sync
Você pode migrar seu Realm Mobile Sync do App Services da sincronização baseada em partição para a Flexible Sync. A migração é um processo automático que não exige alterações no código do aplicativo. A migração automática requer o Realm Node.js SDK versão 11.10.0 ou mais recente.
A migração permite que você mantenha os usuários existentes do App Services e a configuração de autenticação. O Flexible Sync fornece opções de configuração de permissões mais versáteis e sincronização de dados mais granular.
Para obter mais informações sobre como migrar seu aplicativo do App Services App da Partition-Based Sync para o Flexible Sync, consulte Migrar modos de Device Sync .
Atualizando o código do cliente após a migração
A migração automática da sincronização baseada em partição para a Flexible Sync não exige nenhuma alteração no código do cliente. No entanto, para suportar essa funcionalidade, o Realm lida automaticamente com as diferenças entre os dois modos de sincronização por:
Criando automaticamente assinaturas de Flexible Sync para cada Tipo de objeto de Realm em que
partitionKey == partitionValue
.Injetando um campo
partitionKey
em cada objeto, se ainda não existir um. Isso é necessário para a assinatura automática do Flexible Sync.
Se você precisar fazer atualizações no código do cliente após a migração, considere atualizar a base de código do cliente para remover a funcionalidade de migração oculta. Talvez você queira atualizar a base de código do cliente quando:
Você adiciona um novo modelo ou altera um modelo na base de código do cliente
Você adiciona ou altera funcionalidades que envolvem a leitura ou escrita de Objeto de Realm
Você deseja implementar um controle mais refinado sobre quais dados você sincroniza
Faça essas alterações para converter seu código de cliente de sincronização baseada em partição para usar o Flexible Sync:
Adicione
flexible:true
ao seu objeto SyncConfiguration onde você abre um Realm sincronizado.Adicione propriedades relevantes aos seus modelos de objetos para usar em suas assinaturas do Flexible Sync. Por exemplo, você pode adicionar uma propriedade
ownerId
para permitir que um usuário sincronize somente seus próprios dados.Remova as assinaturas automáticas do Flexible Sync e crie manualmente as assinaturas relevantes.
Para obter exemplos de estratégias de permissões de Flexible Sync , incluindo exemplos de como modelar dados para essas estratégias, consulte o Guia de permissões de Device Sync .
Remover e criar assinaturas manualmente
Quando você migra da sincronização baseada em partição para o Flexible Sync, o Realm cria automaticamente assinaturas ocultas do Flexible Sync para seu aplicativo. Da próxima vez que adicionar ou alterar subscrições, recomendamos que você:
Isso permite que você veja toda a sua lógica de assinatura junto em sua base de código para futura iteração e depuração.
Para obter mais informações sobre as assinaturas Flexible Sync geradas automaticamente, consulte Migrar aplicativo cliente para Flexible Sync.