Docs 菜单
Docs 主页
/ /
Atlas Device SDKs
/

升级到 Flutter SDK v 2.0.0

在此页面上

  • 生成器更改
  • 我需要做什么?
  • 已删除的类和成员

适用于 Flutter 版本2.0.0的 Atlas Device SDK 引入了几项重大更改,这些更改会影响从早期版本升级到现有应用程序。

值得注意的是,此版本的 SDK:

  • 更改部件构建器以及 SDK 为数据模型类生成文件的方式。 此更改会影响从早期 SDK 版本升级的所有应用。 有关信息和说明,请参阅此页面上的构建器更改部分。

  • 删除或替换多个类和成员。 这些更改可能会也可能不会影响您的应用。 有关受影响应用的信息和说明,请参阅本页的“已删除的类和成员”部分。

重要

此更改会影响从早期 SDK 版本升级的所有应用。

Flutter SDK版本2.0.0 更新 SDK 的 realm_generator以使用PartBuilder而不是SharedPartBuilder 。 更新后的构建器可生成带有新.realm.dart文件扩展名的RealmModel数据模型文件:

版本
文件扩展名
部分指令示例
SDK v 2.0.0及更高版本
.realm.dart
part 'car.realm.dart';
SDK v 1.9.0及更早版本
.g.dart
part 'car.g.dart';

提示

SharedPartBuilder更新到PartBuilder后,您可以更轻松地在应用程序中使用多个构建器。 例如,将realm_dartdart_mappablejson_serializable等序列化包构建器结合使用。

当您升级现有应用从早期版本的Flutter SDK升级到版本2.0.0或更高版本时,您必须更新所有现有部件声明,然后使用新的.realm.dart文件扩展名重新生成对象模型:

1

更新应用程序中的所有RealmObject部件声明以使用新的命名约定:

import 'package:realm_dart/realm.dart';
// Update existing declaration from .g.dart to .realm.dart
// part 'car.g.dart';
part 'car.realm.dart';
@RealmModel()
class _Car {
@PrimaryKey()
late ObjectId id;
late String make;
late String? model;
late int? miles;
}
2

更新所有声明后,使用新的.realm.dart文件扩展名重新生成对象模型。 您可以从项目中安全地删除任何.g.dart文件。

dart run realm generate

更新所有声明后,使用新的.realm.dart文件扩展名重新生成对象模型。 您可以从项目中安全地删除任何.g.dart文件。

dart run realm_dart generate

Flutter SDK 2.0.0版本还删除或替换了 SDK 中的多个类、成员和属性。 这些更改可能会也可能不会影响您的应用。

下表概述了已删除的内容和原因,以及升级使用已删除的类或成员(如果有)的应用时建议的解决方案:

已删除的类或成员
原因
解决方案
AppConfiguration.localAppNameAppConfiguration.localAppVersion
在 SDK 中未使用。
删除所有实例。
ClientResetError.isFatal
不需要。 始终true
删除所有实例。
ClientResetError.sessionErrorCode
在 SDK v 1.6.0中合并到SyncErrorCode中。
Realm.logger.level
已替换为Realm.logger.setLogLevel
替换任何实例。 另请参阅日志记录 - Flutter SDK。
RealmProperty.indexed
已替换为RealmProperty.indexType
替换任何实例。
RealmValue.type
更改为RealmValueType的枚举。
替换任何实例。 另请参阅RealmValue 数据类型。
RealmValue.uint8List
已重命名为RealmValue.binary
替换任何实例。 另请参阅RealmValue 数据类型。
SchemaObject.properties
SchemaObject 更改为SchemaProperty的可遍历集合。
替换任何实例。 另请参阅 SchemaObject API 参考。
SyncError 构造函数和SyncError.create工厂
同步错误只能由 SDK 在内部创建。
删除所有实例。
SyncClientErrorSyncConnectionErrorSyncSessionErrorSyncResolveErrorSyncWebSocketErrorGeneralSyncError
在 SDK v 1.6.0中合并到SyncError中。
使用SyncError或其子类。 另请参阅 SyncError API参考。
SyncErrorCategorySyncClientErrorCodeSyncConnectionErrorCodeSyncSessionErrorCodeSyncResolveErrorCode 、``SyncWebsocketErrorCode`` 和GeneralSyncErrorCode
在 SDK v 1.6.0中合并到SyncErrorCode中。
使用SyncErrorCode枚举。 另请参阅 SyncError API 参考。
SyncError.codeValueSyncError.categorySyncError.detailedMessageSyncError.detailedMessage
在 SDK v 1.6.0中合并到SyncError中。 消息未使用。
删除所有类别或消息实例。 将SyncError.codeValue替换为SyncError.code.code 。 另请参阅 SyncError API参考。
SyncProgress.transferredBytesSyncProgress.transferableBytes
报告的已传输和可传输值不正确。 已合并为新的SyncProgress.progressEstimate指标。
使用SyncProgress.progressEstimate 。 另请参阅监控同步上传和下载进度。
User.provider
提供者与每个身份相关联,因此对于具有多个身份的用户,该值不正确。
删除所有实例。

后退

SDK 遥测