Firebase says "Domain not whitelisted" for a link that is whitelisted

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.


Solution 1:

  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

Solution 2:

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

Solution 3:

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