insert<R> method
Implementation
@override
Future<Response<T>> insert<R>({
required T data,
String? id,
R? Function(R parent)? source,
}) async {
final response = Response<T>();
if ((id ?? "").isNotEmpty) {
final ref = _source(source).child(id ?? "");
return await ref.get().then((value) async {
if (!value.exists) {
await ref.set(data);
return response.copy(data: data);
} else {
return response.copy(
snapshot: value,
message: 'Already inserted!',
);
}
});
} else {
return response.copy(error: "ID isn't valid!");
}
}