Actualizaciones de RealmObjects Debe ocurrir dentro de las transacciones de escritura. Para más información sobre las transacciones de escritura, consulte: Transacciones de escritura.
El SDK admite operaciones de actualización y upsert. Una operación upsert inserta una nueva instancia de un objeto o actualiza un objeto existente que cumple ciertos criterios. Para obtener más información, consulte la sección Upsert de objetos en esta página.
No puedes actualizar objetos asimétricos. Esto es porque los objetos asimétricos son objetos especiales de solo escritura que no se persisten en la base de datos. Para obtener información sobre cómo utilizar objetos asimétricos en su aplicación, consulte Stream Data to Atlas - Flutter SDK.
Actualizar objetos
Los ejemplos de esta página utilizan dos tipos de objetos, Person y Team.
() class _Person { () late ObjectId id; late String name; late List<String> hobbies; } () class _Team { () late ObjectId id; late String name; late List<_Person> crew; late RealmValue eventLog; }
Actualizar propiedades de objeto
Para modificar las propiedades de un objeto, actualice las propiedades en un bloque de transacción de escritura.
realm.write(() { spaceshipTeam.name = 'Galactic Republic Scout Team'; spaceshipTeam.crew .addAll([Person(ObjectId(), 'Luke'), Person(ObjectId(), 'Leia')]); });
Insertar objetos
final id = ObjectId(); // Add Anakin Skywalker to the realm with primary key `id` final anakin = Person( id, "Anakin Skywalker", ); realm.write(() { realm.add<Person>(anakin); }); // Overwrite the 'Anakin' Person object // with a new 'Darth Vader' object final darthVader = Person(id, 'Darth Vader'); realm.write(() { realm.add<Person>(darthVader, update: true); });