set method
Implementation
Future set(var data, {bool log = true, bool keepData = true}) async {
dynamic collectionData;
if (!keepData) {
collectionData = data;
} else {
collectionData = await _checkType(data);
if (_isMap(data)) {
collectionData ??= {};
for (var key in data.keys) {
collectionData[key] = data[key];
}
} else if (_isList(data)) {
collectionData ??= [];
for (var item in data) {
if (!collectionData.contains(item)) collectionData.add(item);
}
} else {
collectionData = data;
}
}
if (log) {
for (var streamId in storageListeners.getPathStreamIds(path)) {
if (storageListeners.hasStreamId(path, streamId)) {
storageListeners.setDate(path, streamId);
}
}
}
if (parent != null) {
await parent!.set({collectionId: collectionData});
} else {
await storageDatabase.source.setData(
collectionId,
collectionData,
);
}
}