uploadToFirebaseByApi method

Future<void> uploadToFirebaseByApi(
  1. File buildFile, {
  2. required String credentials,
  3. required String appId,
  4. String releaseNotes = '',
  5. List<String> groups = const [],
})

Implementation

Future<void> uploadToFirebaseByApi(
  File buildFile, {
  required String credentials,
  required String appId,
  String releaseNotes = '',
  List<String> groups = const [],
}) async {
  return await _runWithGoogleClient(
    credentials: credentials,
    scopes: [FirebaseAppDistributionApi.cloudPlatformScope],
    handler: (client) async {
      final api = FirebaseAppDistributionApi(client);

      final releaseResponse = await _uploadBinaryToFirebaseViaApi(
        client: client,
        api: api,
        appId: appId,
        buildFile: buildFile,
      );

      if (releaseNotes.isNotEmpty) {
        await api.projects.apps.releases.patch(
          GoogleFirebaseAppdistroV1Release(
            releaseNotes: GoogleFirebaseAppdistroV1ReleaseNotes(
              text: releaseNotes,
            ),
          ),
          releaseResponse.name!,
        );
      }
      if (groups.isNotEmpty) {
        await api.projects.apps.releases.distribute(
          GoogleFirebaseAppdistroV1DistributeReleaseRequest(
            groupAliases: groups,
          ),
          releaseResponse.name!,
        );
      }
    },
  );
}