Stay organized with collections
Save and categorize content based on your preferences.
Showing a custom domain during sign in
This document shows you how to customize the Identity Platform authentication
handler so users see your domain when signing in.
Understanding the default authentication handler
When you enable Identity Platform for your project, a unique subdomain
powered by Firebase Hosting is created automatically.
The domain takes the form of https://[PROJECT-ID].firebaseapp.com.
By default, Identity Platform uses this domain to handle all OAuth, OIDC,
and SAML sign-in redirects.
Using the default domain has several benefits:
Easier setup
Use multiple domains with the same federated providers
Share a single callback URL across different services and domains
Works with providers that only support one callback URL per app
The downside of the default handler is users will briefly see the
https://[PROJECT-ID].firebaseapp.com URL when signing in.
Customizing the authentication handler
To override the default handler and provide your own:
Connect your project to a custom domain.
You'll need to complete these steps using the Firebase Console; using
the Google Cloud CLI or the Google Cloud console is not
supported.
Add the custom domain to the list of Authorized Domains.
Update the Callback URL with your identity provider to use your custom
domain instead of the default domain. For example, change
https://myproject.firebaseapp.com/__/auth/handler to
https://auth.mycustomdomain.com/__/auth/handler.
Click Save.
Updating your client SDK configuration
Web
Normally, you can copy the initialization code for the client SDK from the
Google Cloud console. If you customize the authentication handler, you'll
need to update the authDomain field to your custom domain:
Web version 9
import{initializeApp}from"firebase/app";constfirebaseConfig={apiKey:"...",// By default, authDomain is '[YOUR_APP].firebaseapp.com'.// You may replace it with a custom domain.authDomain:'[YOUR_CUSTOM_DOMAIN]'};constfirebaseApp=initializeApp(firebaseConfig);
firebase.initializeApp({apiKey:'...',// By default, authDomain is '[YOUR_APP].firebaseapp.com'.// You may replace it with a custom domain.authDomain:'[YOUR_CUSTOM_DOMAIN]'});
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThis guide explains how to customize the Identity Platform authentication handler to display your own domain during sign-in instead of the default \u003ccode\u003e[PROJECT-ID].firebaseapp.com\u003c/code\u003e domain.\u003c/p\u003e\n"],["\u003cp\u003eUsing the default domain provides benefits like easier setup and compatibility with providers that only allow one callback URL per app, but it briefly shows the \u003ccode\u003efirebaseapp.com\u003c/code\u003e URL to users.\u003c/p\u003e\n"],["\u003cp\u003eTo customize the handler, you must connect your project to a custom domain, add the custom domain to the list of Authorized Domains, and update the Callback URL with your identity provider to use the new custom domain.\u003c/p\u003e\n"],["\u003cp\u003eAfter customizing the handler, update the \u003ccode\u003eauthDomain\u003c/code\u003e field in your client SDK configuration (Web, Android, iOS) to your custom domain to ensure proper functionality.\u003c/p\u003e\n"],["\u003cp\u003eConfiguring your custom authentication handler is only available through the Firebase Console, and not through Google Cloud CLI or the Google Cloud console.\u003c/p\u003e\n"]]],[],null,["# Showing a custom domain during sign in\n======================================\n\nThis document shows you how to customize the Identity Platform authentication\nhandler so users see your domain when signing in.\n\nUnderstanding the default authentication handler\n------------------------------------------------\n\nWhen you enable Identity Platform for your project, a unique subdomain\npowered by Firebase Hosting is created automatically.\nThe domain takes the form of `https://[PROJECT-ID].firebaseapp.com`.\nBy default, Identity Platform uses this domain to handle all OAuth, OIDC,\nand SAML sign-in redirects.\n\nUsing the default domain has several benefits:\n\n- Easier setup\n\n- Use multiple domains with the same federated providers\n\n- Share a single callback URL across different services and domains\n\n- Works with providers that only support one callback URL per app\n\nThe downside of the default handler is users will briefly see the\n`https://[PROJECT-ID].firebaseapp.com` URL when signing in.\n\nCustomizing the authentication handler\n--------------------------------------\n\nTo override the default handler and provide your own:\n\n1. [Connect your project to a custom domain](https://firebase.google.com/docs/hosting/custom-domain).\n You'll need to complete these steps using the Firebase Console; using\n the Google Cloud CLI or the Google Cloud console is not\n supported.\n\n2. Go to the **Identity Providers** page in the Google Cloud console, and\n select your SAML provider.\n [Go to the Identity Providers page](https://console.cloud.google.com/customer-identity/providers) \n\n3. Add the custom domain to the list of **Authorized Domains**.\n\n4. Update the **Callback URL** with your identity provider to use your custom\n domain instead of the default domain. For example, change\n `https://myproject.firebaseapp.com/__/auth/handler` to\n `https://auth.mycustomdomain.com/__/auth/handler`.\n\n5. Click **Save**.\n\nUpdating your client SDK configuration\n--------------------------------------\n\n### Web\n\nNormally, you can copy the initialization code for the client SDK from the\nGoogle Cloud console. If you customize the authentication handler, you'll\nneed to update the `authDomain` field to your custom domain: \n\n### Web version 9\n\n```javascript\nimport { initializeApp } from \"firebase/app\";\n\nconst firebaseConfig = {\n apiKey: \"...\",\n // By default, authDomain is '[YOUR_APP].firebaseapp.com'.\n // You may replace it with a custom domain.\n authDomain: '[YOUR_CUSTOM_DOMAIN]'\n};\nconst firebaseApp = initializeApp(firebaseConfig);https://github.com/firebase/snippets-web/blob/467eaa165dcbd9b3ab15711e76fa52237ba37f8b/snippets/auth-next/index/auth_init_custom_domain.js#L8-L16\n```\n\n### Web version 8\n\n```javascript\nfirebase.initializeApp({\n apiKey: '...',\n // By default, authDomain is '[YOUR_APP].firebaseapp.com'.\n // You may replace it with a custom domain.\n authDomain: '[YOUR_CUSTOM_DOMAIN]'\n});https://github.com/firebase/snippets-web/blob/467eaa165dcbd9b3ab15711e76fa52237ba37f8b/auth/index.js#L107-L112\n```\n\n### Android and iOS\n\nTo customize the authentication handler, use the following code: \n\n### Java\n\n FirebaseAuth.getInstance().setCustomAuthDomain(\"[YOUR_CUSTOM_DOMAIN]\");\n\n### Kotlin+KTX\n\n Firebase.auth.setCustomAuthDomain(\"[YOUR_CUSTOM_DOMAIN]\")\n\n### Swift\n\n let auth = Auth.auth()\n auth.customAuthDomain = \"[YOUR_CUSTOM_DOMAIN]\"\n\n### Objective-C\n\n FIRAuth *auth = [FIRAuth auth];\n auth.customAuthDomain(\"[YOUR_CUSTOM_DOMAIN]\");"]]