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

Transmitir dados para o Atlas - Flutter SDK

Nesta página

  • Sincronizar dados unidirecionalmente a partir de um aplicativo do cliente
  • Definir um objeto assimétrico
  • Conecte-se e autentique-se com um App Services App
  • Abrir um Realm
  • Criar objetos assimétricos

Você pode usar aingestão de dados para transmitir dados do aplicação cliente para um Atlas App Services habilitado para Flexible Sync .

Talvez você queira sincronizar dados unidirecionalmente em aplicativos IoT, como um sensor meteorológico que envia dados para a nuvem. O arquivo de dados também é útil para gravar outros tipos de dados imutáveis em que você não exige a resolução de conflitos, como criar faturas a partir de uma aplicação de varejo ou registrar evento de aplicação.

A ingestão de dados é otimizada para fornecer melhorias de desempenho para volumes de trabalho pesados somente de inserção no lado do cliente.

1

Arquivo de dados e objeto assimétricos exigem Flexible Sync. Para definir um objeto assimétrico, passe ObjectType.asymmetricObject para @RealmModel().

@RealmModel(ObjectType.asymmetricObject)
class _WeatherSensor {
@PrimaryKey()
@MapTo("_id")
late ObjectId id;
late String deviceId;
late double modtemperatureInFahrenheitel;
late double barometricPressureInHg;
late double windSpeedInMph;
}

Para obter mais informações sobre como definir um objeto assimétrico, consulte Definir um objeto assimétrico.

2

Para transmitir dados do cliente para seu aplicativo de backend, você deve conectar-se a um backend do App Services e autenticar um usuário.

final appConfig = AppConfiguration(appId);
final app = App(appConfig);
final anonCredentials = Credentials.anonymous();
await app.logIn(anonCredentials);
3

Depois de ter um usuário autenticado, abra um Realm.

final currentUser = await app.logIn(credentials);
final config = Configuration.flexibleSync(currentUser, [Tricycle.schema],
path: 'flex.realm');
final realm = Realm(config);

Ao contrário da sincronização bidirecional, o arquivo de dados não usa uma assinatura Flexible Sync.

Não é possível query um objeto assimétrico ou persisti-lo em um Realm local, portanto, objetos assimétricos são incompatíveis com o Flexible Sync bidirecional, a Partition-Based Sync e o uso do Realm local.

4

Depois de ter um Realm aberto, você pode criar um objeto assimétrico dentro de uma transação de escrita. Passe os dados do seu objeto para realm.ingest.

realm.write(() {
realm.ingest(
WeatherSensor(weatherSensorId, "WX1278UIT", 66.7, 29.65, 2));
});

Você não pode ler objetos assimétricos. Depois de criados, eles são sincronizados com o backend do App Services e o reconhecimento de data center vinculado do Atlas.

O Atlas Device Sync gerencia o ciclo de vida desses dados por completo. Ele é mantido no dispositivo até que a sincronização da ingestão de dados seja concluída e, em seguida, é removido do dispositivo.

Voltar

Definir nível de registro de sincronização