Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/ /

Adicionar sincronização de dispositivo a um aplicativo - .NET SDK

Nesta página

  • Conecte-se ao backend do Atlas App Services
  • Autenticar um usuário
  • Abrir um realm sincronizado
  • Use o Realm
1

Passe o ID do aplicativo para seu aplicativo, que você pode encontrar na interface do usuário do App Services.

app = App.Create(myRealmAppId);
2

Autentique um usuário em seu projeto de cliente. Aqui, usaremos a autenticação anônima.

var user = await app.LogInAsync(Credentials.Anonymous());
3

Para abrir o Realm como um Realm sincronizado, você pode especificar se um Realm sincronizado deve baixar dados antes de ser aberto. Aqui, usamos uma Flexible Sync e especificamos que o SDK deve sempre baixar as atualizações mais recentes antes de abrir o Realm. Também inicializamos o Realm com uma assinatura inicial.

var config = new FlexibleSyncConfiguration(app.CurrentUser)
{
PopulateInitialSubscriptions = (realm) =>
{
var myItems = realm.All<Item>().Where(n => n.OwnerId == myUserId);
realm.Subscriptions.Add(myItems);
}
};
// The process will complete when all the user's items have been downloaded.
var realm = await Realm.GetInstanceAsync(config);

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.

O seguinte código demonstra duas maneiras de criar um novo objeto Task e adicioná-lo ao Realm:

var testItem = new Item
{
Name = "Do this thing",
Status = ItemStatus.Open.ToString(),
Assignee = "Aimee"
};
await realm.WriteAsync(() =>
{
realm.Add(testItem);
});
// Or
var testItem2 =
await realm.WriteAsync(() =>
{
return realm.Add<Item>(new Item
{
Name = "Do this thing, too",
Status = ItemStatus.InProgress.ToString(),
Assignee = "Satya"
});
}
);

Importante

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

Como o Realm realiza integrações de sincronização em um thread em segundo plano, se você fizer uma gravação síncrona 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 não fazer uma gravação síncrona na thread principal ao usar o Device Sync e, em vez disso, usar gravações assíncronas com realm.WriteAsync.

Voltar

Sincronizar dados