refreshGcpCredentialsIfNeeded function

Future<bool> refreshGcpCredentialsIfNeeded()

Refresh GCP credentials if needed.

Implementation

Future<bool> refreshGcpCredentialsIfNeeded() async {
  if (_gcpCredentialsRefreshed != null && _gcpCredentialsCacheTime != null) {
    final elapsed = DateTime.now().difference(_gcpCredentialsCacheTime!);
    if (elapsed.inMilliseconds < defaultGcpCredentialTtl) {
      return _gcpCredentialsRefreshed!;
    }
  }

  final refreshed = await _runGcpAuthRefresh();
  _gcpCredentialsRefreshed = refreshed;
  _gcpCredentialsCacheTime = DateTime.now();
  return refreshed;
}