put method

Future<V> put(
  1. DatabaseClient databaseClient,
  2. V value, {
  3. bool? merge,
  4. bool? ifNotExists,
})

Save a record, create if needed.

if ifNotExists is true, the record is only created if it does not exist.

if merge is true and the record exists, data is merged

Both merge and ifNotExists cannot be true at the same time. Returns the updated value or existing value if ifNotExists is true and the record exists

Implementation

Future<V> put(DatabaseClient databaseClient, V value,
    {bool? merge, bool? ifNotExists}) async {
  var client = getClient(databaseClient);
  _checkValueArgument(value);
  value = client.sembastDatabase
      .sanitizeInputValue<V>(value as Value, update: merge);
  return (await client.inTransaction((txn) {
    return client.getSembastStore(store).txnPut(
        txn, value as Value, key as Key,
        merge: merge, ifNotExists: ifNotExists);
  }) as V?)!;
}