Docs Menu
Docs Home
/ /
CRUD

CRUD - actualizar - Flutter SDK

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.

Los ejemplos de esta página utilizan dos tipos de objetos, Person y Team.

@RealmModel()
class _Person {
@PrimaryKey()
late ObjectId id;
late String name;
late List<String> hobbies;
}
@RealmModel()
class _Team {
@PrimaryKey()
late ObjectId id;
late String name;
late List<_Person> crew;
late RealmValue eventLog;
}

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')]);
});

Para insertar un objeto, llame Reino.add()Con el indicador update opcional establecido en true dentro de un bloque de transacción. La operación inserta un nuevo objeto con la clave principal dada si no existe un objeto con esa clave principal. Si ya existe un objeto con esa clave principal, la operación actualiza el objeto existente para esa clave principal.

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);
});

Volver

Lea

En esta página