appCheckToken function

Future<AppCheckToken> appCheckToken({
  1. bool forceRefresh = false,
})

The current token, for attaching to something this library does not speak — a backend of your own.

forceRefresh asks the provider again rather than answering from cache.

Implementation

Future<AppCheckToken> appCheckToken({bool forceRefresh = false}) {
  final completer = Completer<AppCheckToken>();
  final receive = RawReceivePort();
  receive.handler = (Object? message) {
    receive.close();
    try {
      completer.complete(_readToken(message! as Uint8List));
    } on Object catch (e) {
      completer.completeError(e);
    }
  };
  final rc = fdbAcGetToken(forceRefresh ? 1 : 0, receive.sendPort.nativePort);
  if (rc != 0) {
    receive.close();
    return Future.error(StateError('appCheckToken before initAppCheck ($rc)'));
  }
  return completer.future;
}