Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

Atlas へのデータのストリーム - Flutter SDK

項目一覧

  • クライアント アプリケーションから一方向にデータを同期
  • 非対称オブジェクトの定義
  • App Services Appによる接続と認証
  • Realm を開く
  • 非対称オブジェクトの作成

Data Ingestを使用して、クライアント アプリケーションから Flexible Sync が有効化されている Atlas App Services アプリにデータをストリーミングできます。

クラウドにデータを送信する気象センサーなど、IoT アプリケーションでデータを一方向に同期したい場合があります。 Data Ingest は、小売アプリからの請求書作成や、アプリケーション イベントのログ記録など、競合の解決を必要としない他のタイプの不変データを書き込む場合にも役立ちます。

Data Ingest は、クライアント側の挿入専用ワークロードのパフォーマンスを向上させるために最適化されています。

1

Data Ingest および非対称オブジェクトには Flexible Sync が必要です。 非対称オブジェクトを定義するには、 ObjectType.asymmetricObject@RealmModel()に渡します。

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

非対称オブジェクトを定義する方法の詳細については、「 非対称オブジェクトの定義 」を参照してください。

2

クライアントからバックエンド アプリにデータをストリーミングするには、App Services バックエンドに接続し、ユーザーを認証する必要があります。

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

認証されたユーザーを作成したら、同期された Realm を開きます。

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

双方向同期とは異なり、Data Ingest はFlexible Sync サブスクライブを使用しません。

非対称オブジェクトをクエリしたり、ローカル Realm に永続化したりすることはできないため、非対称オブジェクトは双方向 Flexible Sync、パーティションベースの同期、およびローカル Realm の使用と互換性がありません。

4

Realm が開いたら、書込みトランザクション内に非対称オブジェクトを作成できます。 オブジェクト データをrealm.ingestに渡します。

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

非対称オブジェクトは読み取れません。 作成が完了すると、App Services バックエンドとリンクされた Atlas データベースに同期されます。

Atlas Device Sync は、このデータのライフサイクルを完全に管理します。 Data Ingest 同期が完了するまでデバイス上に保持され、その後デバイスから削除されます。

戻る

同期ログレベルの設定