ensureFirebaseAuth method
void
ensureFirebaseAuth({})
Declares app-level Firebase auth behavior idempotently.
Unlike firebaseAuth, this does not throw if Firebase auth is already configured. If the target project already has Firebase auth configured, compilation silently skips the reconfiguration.
app.ensureFirebaseAuth(
providers: [FirebaseAuthProvider.email],
homePage: 'HomePage',
signInPage: 'SignInPage',
);
Implementation
void ensureFirebaseAuth({
required Iterable<FirebaseAuthProvider> providers,
required Object homePage,
required Object signInPage,
bool autoCreateUserDocument = false,
String? userCollectionName,
}) {
_ensureFirebaseAuthFlag.add('set');
if (_firebaseAuth != null) {
return; // Already configured in this DSL app — no-op.
}
if (_supabaseAuth != null) {
throw StateError(
'ensureFirebaseAuth: Supabase auth is already configured in this DSL app. '
'Firebase and Supabase auth are mutually exclusive.',
);
}
_firebaseAuth = FirebaseAuthDeclaration(
providers: providers,
homePageName: _resolvePageReference(homePage, 'homePage'),
signInPageName: _resolvePageReference(signInPage, 'signInPage'),
autoCreateUserDocument: autoCreateUserDocument,
userCollectionName: userCollectionName,
);
}