Arguments.fromJson constructor

Arguments.fromJson(
  1. Map<String, dynamic> json, {
  2. required Variables variables,
})

Creates Arguments instance from JSON configuration.

Deserializes JSON configuration data to create a Firebase Arguments instance. Validates required fields and provides proper error handling for missing or invalid configuration.

Parameters:

  • json - JSON configuration map
  • variables - System variables for interpolation

Returns configured Arguments instance from JSON data.

Throws Exception if required fields are missing:

  • "file-path" is required
  • "app-id" is required
  • "binary-type" is required

Example JSON:

{
  "file-path": "/path/to/app.apk",
  "app-id": "1:123456789:android:abcdef",
  "binary-type": "apk",
  "release-notes": "Bug fixes and improvements",
  "groups": "qa-team,beta-users"
}

Implementation

factory Arguments.fromJson(
  Map<String, dynamic> json, {
  required Variables variables,
}) {
  if (json['file-path'] == null) throw Exception("file-path is required");
  if (json['app-id'] == null) throw Exception("app-id is required");
  if (json['binary-type'] == null) throw Exception("binary-type is required");
  return Arguments(
    variables,
    filePath: json["file-path"] as String,
    appId: json['app-id'] as String,
    binaryType: json['binary-type'] as String,
    releaseNotes: json['release-notes'] as String?,
    releaseNotesFile: json['release-notes-file'] as String?,
    testers: json['testers'] as String?,
    testersFile: json['testers-file'] as String?,
    groups: json['groups'] as String?,
    groupsFile: json['groups-file'] as String?,
  );
}