将数据流式传输到 Atlas — Flutter SDK
Atlas Device SDK 已弃用。 有关详细信息,请参阅弃用页面。
您可以使用数据导入将数据从客户端应用程序流传输到启用了 Flexible Sync 的Atlas App Services App。
您可能希望在物联网(IoT)应用程序中单向同步数据,例如将数据发送到云的天气传感器。数据导入对于写入不需要冲突解决的其他类型的不可变数据也很有用,例如从零售应用程序创建发票或记录应用程序事件。
数据导入经过优化,可为繁重的客户端仅插入工作负载提供性能改进。
从客户端应用程序单向同步数据
1
定义非对称对象
数据导入和非对称对象需要Flexible Sync。 要定义非对称对象,请将 ObjectType.asymmetricObject
传递给@RealmModel()
。
(ObjectType.asymmetricObject)class _WeatherSensor { () "_id") ( late ObjectId id; late String deviceId; late double modtemperatureInFahrenheitel; late double barometricPressureInHg; late double windSpeedInMph; }
有关如何定义非对称对象的更多信息,请参阅定义非对称对象。
2
使用 App Services App 连接并进行身份验证
要将数据从客户端流式传输到后端应用程序,您必须连接到 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);
与BI不同,数据导入不使用Flexible Sync 订阅。
您无法查询非对称对象或将其持久保存在本地 Realm 中,因此非对称对象与双向 Flexible Sync、基于分区的同步和本地 Realm 使用不兼容。