syncDocument method
Future<DynamicMap?>
syncDocument(
- ModelAdapterDocumentQuery query,
- DynamicMap? value, {
- String? prefix,
Stores value
in the path corresponding to query
and then returns value
.
Used to synchronize NoSqlDatabase with other databases.
prefix
can be specified to prefix the path.
query
に対応するパスにvalue
を格納してからvalue
を返します。
他のデータベースとNoSqlDatabaseを同期するために利用します。
prefix
を指定するとパスにプレフィックスを付与可能です。
Implementation
Future<DynamicMap?> syncDocument(
ModelAdapterDocumentQuery query,
DynamicMap? value, {
String? prefix,
}) async {
_addDocumentListener(query, prefix: prefix);
await _initialize();
final trimPath = _path(query.query.path, prefix);
final paths = trimPath.split("/");
if (paths.isEmpty) {
return value;
}
value = Map.from(value ?? {})..removeWhere((key, value) => value == null);
if (value.isEmpty) {
data._deleteFromPath(paths, 0);
onDeleted?.call(this);
return null;
}
data._writeToPath(paths, 0, value);
await onSaved?.call(this);
return value;
}