isMutatingRequest method
Determines if an HTTP request is mutating (writes/updates/deletes data).
Note: Firestore REST API uses POST for :runQuery, :runAggregationQuery,
and :listCollectionIds, which are read-only operations and must NOT be
treated as mutating requests.
Implementation
bool isMutatingRequest(http.BaseRequest request) {
final method = request.method;
if (method == 'GET' || method == 'HEAD' || method == 'OPTIONS') {
return false;
}
final path = request.url.path;
if (method == 'POST' &&
(path.endsWith(':runQuery') ||
path.endsWith(':runAggregationQuery') ||
path.endsWith(':listCollectionIds'))) {
return false;
}
return true;
}