getProjectIdFromFirebaseJson method
Attempts to parse the firebase.json file to identify the
linked Firebase project ID.
Checks multiple lookup paths including:
flutter/platforms/android/default/projectIdflutter/platforms/ios/default/projectIdflutter/platforms/dartmap values
Implementation
Future<String?> getProjectIdFromFirebaseJson() async {
final file = File('firebase.json');
if (!file.existsSync()) {
print('❌ firebase.json not found');
return null;
}
final content = jsonDecode(await file.readAsString());
try {
final flutter = content['flutter'];
if (flutter != null && flutter['platforms'] != null) {
final platforms = flutter['platforms'];
// 1. Try Android
if (platforms['android'] != null &&
platforms['android']['default'] != null) {
final id = platforms['android']['default']['projectId'];
if (id != null) return id;
}
// 2. Try iOS
if (platforms['ios'] != null && platforms['ios']['default'] != null) {
final id = platforms['ios']['default']['projectId'];
if (id != null) return id;
}
// 3. Try Dart config (most reliable for FlutterFire)
if (platforms['dart'] is Map) {
final dart = platforms['dart'] as Map;
for (final conf in dart.values) {
if (conf is Map && conf['projectId'] != null) {
return conf['projectId'];
}
}
}
}
print('❌ Unable to extract projectId from firebase.json');
return null;
} catch (e) {
print('❌ Error parsing firebase.json: $e');
return null;
}
}