Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/ / /

CRUD - Atualização - Flutter SDK

Nesta página

  • Atualizar objetos
  • Atualizar propriedades do objeto
  • Objetos do Upsert

As atualizações de RealmObjects devem ocorrer na transação de escrita. Para obter mais informações sobre transações de gravação, consulte: Transações de gravação.

O SDK suporta operações de atualização e upsert. Uma operação upsert insere uma nova instância de um objeto ou atualiza um objeto existente que atende a determinados critérios. Para obter mais informações, consulte a seção Atualizar objetos nesta página.

Você não pode atualizar objetos assimétricos. Isso ocorre porque objetos assimétricos são objetos especiais somente para gravação que não persistem no reconhecimento de data center. Para obter informações sobre como usar objetos assimétricos em seu aplicativo, consulte Transmitir dados para o Atlas - Flutter SDK</a>.

Os exemplos nesta página usam dois tipos de objeto, Person e 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 as propriedades de um objeto, atualize as propriedades em um bloco de transação de escrita.

realm.write(() {
spaceshipTeam.name = 'Galactic Republic Scout Team';
spaceshipTeam.crew
.addAll([Person(ObjectId(), 'Luke'), Person(ObjectId(), 'Leia')]);
});

Para atualizar um objeto, chame Realm.add() com o update sinalizador opcional definido como true dentro de um bloco de transação. A operação insere um novo objeto com a chave primária fornecida se um objeto com essa chave primária não existir. Se já houver um objeto com essa chave primária, a operação atualizará o objeto existente para essa chave primária.

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

Voltar

Leia