FlutterFlow Google sign-in with Firebase: setup, domains and the firebaseapp.com screen

Updated 26 Oct 2026 · Pewterkit Guides

To add Google sign-in to a FlutterFlow app, connect Firebase, enable Firebase authentication in FlutterFlow, turn on the Google provider in Firebase, and attach a Log In action with Auth Provider: Google to your button. On web it only works on domains you have authorized in both the Firebase console and Google Cloud console, and the Google screen will say <project>.firebaseapp.com unless you move the auth handler to your own domain, which FlutterFlow's docs do not offer as a setting.

Step 1: Connect Firebase and turn on authentication

FlutterFlow menu names as of Oct 2026:

  1. Settings & Integrations > Project Setup > Firebase: connect your Firebase project (the setup wizard now uses Sign in with Google for access), paste the Project ID, click Connect, then Generate Config Files. Don't close or refresh the page while the files generate.
  2. Settings & Integrations > App Settings > Authentication: turn on Enable Authentication and set Authentication Type to Firebase.
  3. Set the Entry Page (shown when signed out) and Logged In Page (where users land after signing in).
  4. Optional but common: create a Firestore collection named users and accept the default fields.

Step 2: Enable Google in Firebase (and add SHA-1 for Android)

  • In the Firebase console, open Security > Authentication > Sign-in method (older guides: Build > Authentication) and enable Google.
  • For Android, add your SHA-1 fingerprint under Project Overview > Project Settings > Your apps, then click Regenerate Config Files back in FlutterFlow's Firebase settings. For release builds, use the SHA keys from Google Play Console.

Step 3: Add the Log In action

  1. Add a Google login button to your login page (or use a page template).
  2. Select it, open Actions, click Add Action, and choose Log In (under Backend/Database > Firebase Authentication).
  3. Set Auth Provider to Google.
  4. Turn on Create User Document and pick the users collection.
  5. Add a Logout action wherever users should be able to sign out.

Step 4: Authorize every domain your app runs on

A FlutterFlow web app can run on several domains, and each one needs authorizing. FlutterFlow's docs say to add the domain in both the Firebase console and Google Cloud console.

Where the app runs Domain to authorize (from FlutterFlow docs, Oct 2026)
Test mode Shown in the browser console after a failed login; looks like ff-debug-service-frontend-<id>.a.run.app (Pro users get a -pro suffix)
Run mode app.flutterflow.io
Published site <project-id>.flutterflow.app, or the custom subdomain you set in Site URL
Custom domain Your domain, for example app.example.com

For each domain:

  1. Firebase console: Security > Authentication > Settings > Authorized domains > Add domain (older guides: Build > Authentication > Settings). FlutterFlow's publishing docs warn that social and phone sign-in won't work on a custom domain until you add it here.
  2. Google Cloud console: open your project's Credentials, select Web client (auto created by Google Service) under OAuth 2.0 Client IDs, add https://<domain> under Authorized JavaScript origins, and add https://<domain>/__/auth/handler under Authorized redirect URIs. If no web client exists, create an OAuth client ID of type Web application.

If you still see "This domain is not authorized for OAuth operations," compare the exact hostname in the address bar with the list; see Firebase authorized domains not working.

Step 5: Publish on your custom domain

Per FlutterFlow's web publishing docs (Oct 2026): paid plans include one custom domain; enter it without www, create the A/AAAA records FlutterFlow shows (with no other A or AAAA records left), click Connect, then Publish again. A project links to one domain or subdomain, not both. Then authorize the domain as in Step 4.

Why the Google screen says "continue to .firebaseapp.com"

Firebase's web SDK sends Google sign-in through the auth handler on your project's authDomain, which is <project>.firebaseapp.com by default. Firebase's docs show the consent screen reading "Continue to: my-app-12345.firebaseapp.com" for exactly this reason. Publishing on a custom domain in FlutterFlow does not change it. A FlutterFlow community thread reports the same symptom after connecting a custom domain. The full explanation is on Why Google says "continue to firebaseapp.com".

Changing authDomain in a FlutterFlow app: what's confirmed

What the docs support, as of Oct 2026:

  • No FlutterFlow setting found. FlutterFlow's Firebase connection, authentication and web publishing docs describe generating Firebase config files but don't document a field for editing authDomain.
  • Firebase's requirement. To show your own domain, Firebase needs the auth handler served at https://<your-domain>/__/auth/handler: either your domain on Firebase Hosting with authDomain set to it, or a transparent reverse proxy from your domain's /__/auth/ path to <project>.firebaseapp.com.
  • FlutterFlow hosting. FlutterFlow's web publishing docs don't describe serving or proxying extra paths such as /__/auth/ on a FlutterFlow-hosted site.

So the documented route runs through exported code:

  1. Export the code. Use Push to GitHub. FlutterFlow always pushes to a branch named flutterflow and overwrites it, so create a develop branch from it for your edits and merge later FlutterFlow pushes into develop by pull request.
  2. Set authDomain for web. In the exported project, search for the Firebase web options (grep -rn "authDomain" lib/ web/) and set the value to your domain. In FlutterFire, FirebaseOptions.authDomain is the field that controls OAuth redirects on web, and it isn't used by Android or iOS builds.
  3. Host it where the handler can live. Build with flutter build web and deploy build/web to Firebase Hosting on your custom domain, or to a host where you can proxy /__/auth/.
  4. Register the new handler. Add https://app.example.com/__/auth/handler to the web client's Authorized redirect URIs, and keep the domain in Firebase's Authorized domains.

The trade-off: you leave FlutterFlow's one-click publishing for that domain and re-apply your edit each time you merge a new FlutterFlow push. Host-by-host steps for the handler are in How to change your Firebase authDomain.

How to confirm it worked

  • In Run mode, click the Google button; after sign-in you land on the Logged In Page.
  • The user appears in Firebase console > Authentication > Users, and a document appears in users if you enabled Create User Document.
  • On the published domain, repeat the test; an unauthorized-domain error means Step 4 is missing for that hostname.
  • After an authDomain change, the Google screen should name your domain and DevTools > Network should show /__/auth/handler on it.

FAQ

Why do I get "domain not authorized" in Run mode?

Run mode serves your app from app.flutterflow.io, so that domain must be in Firebase's authorized domains and in the Google Cloud web client, per FlutterFlow's Google sign-in docs. Test mode uses a different a.run.app domain, which needs its own entry.

Do I really need to touch Google Cloud console?

FlutterFlow's docs say yes for web: add each domain as an Authorized JavaScript origin and add /__/auth/handler on each domain as an Authorized redirect URI on the auto-created web client.

Will a FlutterFlow custom domain change "continue to firebaseapp.com"?

No. That text comes from Firebase's authDomain, not from where FlutterFlow hosts your site. Changing it needs the handler on your domain, as described above.

Does changing authDomain affect my FlutterFlow mobile app?

FirebaseOptions.authDomain is documented as the domain for OAuth redirects on web platforms, so native Android and iOS builds don't use it.

Sources

  1. Google Sign-In (FlutterFlow docs)
  2. Firebase Authentication: Initial Setup (FlutterFlow docs)
  3. Connect to Firebase (FlutterFlow docs)
  4. Web Publishing (FlutterFlow docs)
  5. Push to GitHub (FlutterFlow docs)
  6. Web login shows Firebase project domain instead of my custom domain (FlutterFlow Community)
  7. Authenticate Using Google with JavaScript: custom domain on the consent screen (Firebase)
  8. Best practices for using signInWithRedirect on browsers that block third-party storage access (Firebase)
  9. Authenticate with Firebase using email link: authorized domains (Firebase)
  10. FirebaseOptions.authDomain (pub.dev)
  11. Build and release a web app (Flutter docs)
  12. Connect a custom domain (Firebase Hosting)

How this page was made: drafted with AI from the sources listed, reviewed by Pewterkit. Docs checked 26 Oct 2026. Spotted something out of date? Tell us.

Related guides