onFetch method
Implementation
@override
Future<AlbumOre> onFetch(path, [query]) async {
const r = FirestoreCodec.decode; // decoder
final s = [#pageSize, #pageToken, #orderBy];
x(data) => data..[Album.srcKey] = data['name'];
final uri = accessUri.resolve(resolvePath(path)).replace(
queryParameters: Query.splice(query, s)?.json,
scheme: 'https', // designate framework.*
);
final response = await client.get(uri);
final body = json.decode(response.body, reviver: r);
if (response.statusCode != 200) {
throw FirestoreException(response); //*!
}
// return single model
if (!body.containsKey('documents')) {
return AlbumOre(x(body));
}
// return multiple models % no token
return AlbumOre(
body['documents'].map(x).toList(),
body['nextPageToken'],
);
}