handleStorageInit function
Ensure the default Storage bucket exists (T4).
Implementation
Future<void> handleStorageInit() async {
final SetupConfig? config = await requireFirebaseProjectConfig();
if (config == null) return;
final FirebaseInitializer initializer = FirebaseInitializer(
config.firebaseProjectId!,
);
info(
'Ensuring default Storage bucket exists for ${config.firebaseProjectId}...',
);
final StorageInitResult result = await initializer.ensureStorageBucket();
if (result.success) {
if (result.created) {
success('Default Storage bucket created: gs://${result.bucketName}');
} else {
success(
'Default Storage bucket already exists: gs://${result.bucketName}',
);
}
print('');
if (result.needsFirebaseInit && result.getStartedUrl != null) {
warn(
'Visit ${result.getStartedUrl!} once and click "Get Started" to enable Firebase Storage.',
);
}
} else {
error('Failed to ensure Storage bucket: ${result.message}');
if (result.getStartedUrl != null) {
print('');
UserPrompt.printList(<String>[
SetupGuidance.linkLine(
'Firebase Storage console',
result.getStartedUrl!,
),
'Click "Get Started" once, then re-run: oracular deploy storage-init',
]);
}
}
}