Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Flutter SDK

Actualice al SDK de Flutter v2.0.0

El SDK de dispositivos Atlas para Flutter versión 2.0.0 presenta varios cambios importantes que afectan a las aplicaciones existentes que se actualizan desde una versión anterior.

En particular, esta versión del SDK:

  • Se modifica el generador de componentes y la forma en que el SDK genera archivos para las clases del modelo de datos. Este cambio afecta a todas las aplicaciones que se actualizan desde una versión anterior del SDK. Consulte la SecciónCambios del constructor en esta página para obtener información e instrucciones.

  • Elimina o reemplaza varias clases y miembros. Estos cambios pueden afectar o no a tu aplicación. Consulta la sección "Clases y miembros eliminados" en esta página para obtener información e instrucciones sobre las aplicaciones afectadas.

Importante

Este cambio afecta a todas las aplicaciones que actualizan desde una versión anterior del SDK.

La versión 2.0.0 del SDK de Flutter actualiza el SDK realm_generator Para usar un PartBuilder en lugar de un SharedPartBuilder. Este generador actualizado genera archivos de modelo de datos RealmModel con una nueva extensión de archivo .realm.dart:

Versión
Extensión de archivo
Ejemplo de Directiva de Parte

SDK v2.0.0 y posteriores

.realm.dart

part 'car.realm.dart';

SDK v1.9.0 and earlier

.g.dart

part 'car.g.dart';

Tip

La actualización de SharedPartBuilder a PartBuilder facilita el uso de múltiples desarrolladores en la aplicación. Por ejemplo, combinando realm_dart con un constructor de paquetes de serialización como dart_mappable o json_serializable.

Cuando actualices una aplicación existente de una versión anterior del Flutter SDK a la versión 2.0.0 o posterior, debes actualizar cualquier declaración de partes existente y luego regenerar los Modelos de objeto con la nueva extensión de archivo .realm.dart:

1

Actualice todas las declaraciones de la parte RealmObject en su aplicación para usar la nueva convención de nomenclatura:

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

Después de que actualices todas tus declaraciones, regenera tus modelos de objetos con la nueva extensión de archivo .realm.dart. Puedes borrar de forma segura cualquier archivo .g.dart de tu proyecto.

dart run realm generate

Después de que actualices todas tus declaraciones, regenera tus modelos de objetos con la nueva extensión de archivo .realm.dart. Puedes borrar de forma segura cualquier archivo .g.dart de tu proyecto.

dart run realm_dart generate

La versión 2.0.0 del SDK de Flutter también eliminó o reemplazó varias clases, miembros y propiedades. Estos cambios pueden afectar o no a tu aplicación.

The following table outlines what was removed and why, as well as a recommended solution when upgrading an app that used the removed class or member, if any:

Clase o nodo eliminado
Razón
Solución

AppConfiguration.localAppName y AppConfiguration.localAppVersion

Unused in SDK.

Eliminar cualquier instancia.

ClientResetError.isFatal

No es necesario. Siempre true.

Eliminar cualquier instancia.

ClientResetError.sessionErrorCode

Consolidated into SyncErrorCode in SDK v1.6.0.

Realm.logger.level

Replaced by Realm.logger.setLogLevel.

Reemplaza todas las instancias. Consulta también Registro - SDK de Flutter.

RealmProperty.indexed

Replaced by RealmProperty.indexType.

Reemplace cualquier instancia.

RealmValue.type

Cambiado a un enum de RealmValueType.

Replace any instances. See also RealmValue Data Type.

RealmValue.uint8List

Renombrado a RealmValue.binary.

Replace any instances. See also RealmValue Data Type.

SchemaObject.properties

SchemaObject cambiado a una colección iterable de SchemaProperty.

Replace any instances. See also the SchemaObject API reference.

SyncError constructor and SyncError.create factory

El SDK solo debe crear errores de sincronización de forma interna.

Eliminar cualquier instancia.

SyncClientError, SyncConnectionError, SyncSessionError, SyncResolveError, SyncWebSocketError y GeneralSyncError

Consolidated into SyncError in SDK v1.6.0.

Use SyncError or its subclasses. See also the SyncError API reference.

SyncErrorCategory, SyncClientErrorCode, SyncConnectionErrorCode, SyncSessionErrorCode, SyncResolveErrorCode, ``SyncWebsocketErrorCode`` y GeneralSyncErrorCode

Consolidated into SyncErrorCode in SDK v1.6.0.

Utiliza la enumeración SyncErrorCode. Consulta también la referencia de la API SyncError.

SyncError.codeValue, SyncError.category, y SyncError.detailedMessage

Consolidado en SyncError en la SDK v1.6.0. Los mensajes no fueron utilizados.

Remove any category or message instances. Replace SyncError.codeValue with SyncError.code.code. See also the SyncError API reference.

SyncProgress.transferredBytes y SyncProgress.transferableBytes

Reported transferred and transferable values were incorrect. Consolidated into a new SyncProgress.progressEstimate metric.

Utiliza SyncProgress.progressEstimate. Consulta también Supervisa la sincronización y el avance de subidas y descargas.

User.provider

Provider is associated with each identity, so value was incorrect for users with more than one identity.

Eliminar cualquier instancia.

Volver

SDK Telemetry

En esta página