handleFirestoreInit function
Ensure the default Firestore database exists (T4).
Implementation
Future<void> handleFirestoreInit() async {
final SetupConfig? config = await requireFirebaseProjectConfig();
if (config == null) return;
final FirebaseInitializer initializer = FirebaseInitializer(
config.firebaseProjectId!,
);
info(
'Ensuring Firestore default database exists for ${config.firebaseProjectId}...',
);
final FirestoreInitResult result = await initializer.ensureFirestoreDatabase(
region: config.firestoreRegion,
);
if (result.success) {
if (result.created) {
success('Firestore database created in region ${result.region}.');
} else {
success('Firestore database already exists (region: ${result.region}).');
}
print('');
UserPrompt.printList(<String>[
SetupGuidance.linkLine(
'Firestore console',
FirebaseInitializer.firestoreConsoleUrl(config.firebaseProjectId!),
),
]);
} else {
error('Failed to ensure Firestore database: ${result.message}');
print('');
UserPrompt.printList(<String>[
'Verify gcloud is installed and authenticated.',
'Confirm the active account has roles/datastore.owner or roles/owner.',
'Retry with: oracular deploy firestore-init',
]);
}
}