52

I am busy setting up a firebase authentication using an email magic link and using the guide here:

https://firebase.google.com/docs/auth/android/email-link-auth

It says I need to whitelist a domain, but I cannot find any place in the console to do that, other than the dynamic link I created. I tried running the below code, but I get

[ UNAUTHORIZED_DOMAIN:Domain not whitelisted by project ]

    val actionCodeSettings = ActionCodeSettings.newBuilder()
            // URL you want to redirect back to. The domain (www.example.com) for this
            // URL must be whitelisted in the Firebase Console.
            .setUrl("https://myapphere.page.link/register") //I created this dynamic link in the firebase console
            .setHandleCodeInApp(true)
            .setAndroidPackageName(
                    "com.myapphere",
                    true, 
                    "1")
            .build()

    val auth = FirebaseAuth.getInstance()
    auth.sendSignInLinkToEmail(email, actionCodeSettings)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    // Sign in success, update UI with the signed-in user's information
                } else {
                    // If sign in fails, display a message to the user.
                }
            }

Am I not supposed to use dynamic links for firebase authentication? And if so, where in the console do I whitelist domains, because I cannot find it.

1
  • In my case, the problem was a result of not setting up all the Firebase Dynamic Links. This new video tutorial from the Firebase team "Getting started with email/link auth on iOS" goes through the entire process: youtu.be/-OK7VG7Cl8I Commented Jul 20, 2023 at 18:50

6 Answers 6

78
  1. Go to Firebase Console
  2. Click Authentication Menu > Sign-in method tab
  3. Scroll Down to Authorized domains
  4. Click "Add domain" button, add your domain (website domain with parameter) and click "Add"

Scroll further down on this page

5
  • 17
    Maybe you can explain a little bit more what "domain" means. It can be app domain like com.yourcompany.yourappname or website domain like yourcompanyappname.com. To newer developers that information might be useful. In your case it might be myapphere.page.link on setUrl, but it's good to mention that. Commented Jan 6, 2020 at 19:10
  • 1
    Can i then use com.yourcompany.yourappname as domain name under Authorized domains?
    – Brendan
    Commented Aug 23, 2020 at 2:16
  • 1
    the domain I am using is authorized an it's still not working
    – Jeff Voss
    Commented Jan 24, 2022 at 1:39
  • My solution was a stupid mistake. I was using an environment variable to set the ActionCodeSettings url param to the wrong domain. Commented Jul 30, 2022 at 23:15
  • 3
    Note: The location of the list of "Authorized domains" has been moved to Authentication->Settings Commented Mar 3, 2023 at 16:59
18

Go to https://console.firebase.google.com/project/<project-id>/authentication/settings

Click on "Authorized domains"

Click on "Add domain"

enter image description here

Still not working ?

www.example.com is not the same thing as example.com

1
  • I ran into the same issue even though I set up the authorized domain correctly. Additionally, I had to set up the URL for actionCodeSettings without the www prefix. This means that where I wanted to pass my domain, I had to use url: https://custom.domain instead of url: https://www.custom.domain.
    – Hölderlin
    Commented Jul 7 at 18:37
4

More details: This issue happen when I tried to sendSignInLinkToEmail like this

firebase
  .auth()
  .sendSignInLinkToEmail('[email protected]', {
    url: 'my.custom.domain',
    handleCodeInApp: true
});

If you come up with default domain in Firebase hosting, that's fine until you add your own custom domain.

This can be solved by add your custom domain to Authorized Domains in Authentication -> Sign-in Method -> Authrorized Domains

2
  • How can we add all subdomain with some wild card selector ? In our case we are creating subdomain for each user when they signup. How do we authorized them automatically ?
    – Santosh
    Commented Feb 11, 2022 at 6:15
  • @Santosh I don't think Firebase supports adding wildcard domain at this time. Unfortunately need to authorize it manually since it have some extra step regarding adding A record to your DNS and so on Commented Feb 11, 2022 at 7:40
2

I had the same problem, the reason was my SHA-1 key configured in Firebase was wrong.

1
  • 3
    Can you go into more detail? Where is that key configured? What was wrong wih your configuration? Commented Oct 15, 2021 at 11:10
1

To get past this error I had todo:

    const actionCodeSettings = {
    ¦ // URL you want to redirect back to. The domain (www.example.com) for this
    ¦ // URL must be in the authorized domains list in the Firebase Console.
    ¦ url: 'https://example.com',
    ¦ handleCodeInApp: true,
    };

then add example.com and www.example.com to my Authorized Domains.

1

If you have already added your domain in firebase console, and you still get this problem - it may be just that your authorized domain doesn't have the www prefix. In my case, I added both

MY_DOMAIN.com and www.MY_DOMAIN.com to the Authorized domains in

https://console.firebase.google.com -> Authentication -> Settings -> Authorised Domains

And now it works

Not the answer you're looking for? Browse other questions tagged or ask your own question.