Flutter graphql using cache with hive, when calling query with police 'cacheAndNetwork' it always uses the network without the cache
Here is caple of my code
Future<QueryResult> query(String query,
{Map<String, dynamic> variables}) async {
QueryOptions options = QueryOptions(
document: gql(query),
variables: variables,
fetchPolicy: FetchPolicy.cacheAndNetwork,
errorPolicy: ErrorPolicy.none,
cacheRereadPolicy: CacheRereadPolicy.mergeOptimistic,
);
final result = await _client.query(options);
return result;
}
It returns always from the network, actually, it should work how it's described in the documentation of graphql "'cacheAndNetwork' returns result from cache first (if it exists), then return network result once it's available."
Here is my GraphQL client
GraphQLClient _client;
Client httpClient;
void initClient(session) {
if (_client != null) return;
final token = session.getAccessToken().getJwtToken();
final HttpLink _httpLink = HttpLink(
'https://*************/graphql',
defaultHeaders: {
'x-api-key': '************',
'Content-Type': '*************'
},
httpClient: this.httpClient,
);
final AuthLink _authLink = AuthLink(getToken: () => token);
final Link _link = _authLink.concat(_httpLink);
_client = GraphQLClient(
cache: GraphQLCache(
store: HiveStore(),
),
link: _link,
);
}