Firebase Dynamic Links: Can't use Google-provided hostname - firebase

I can't seem to set up Firebase > Dynamic Links using the Google-provided domain '[my-app-name].page.link'.
I'm trying to use Firebase > Dynamic Links for the first time so that I can use email-address-only authentication in my React Native app. I don't want to pay for a custom domain just to set up a TXT record so that Google can verify the domain, so I'd like to use the Google-provided domain name.
The problem I have with that is when I go to https://console.firebase.google.com/u/0/project/[my-app-id]/durablelinks, click on the 'Get Started' button, select the Google-provided '[my-app-name].page.link', and click 'Continue' I get the error:
This name is unable to be used by anyone. If you believe this is a mistake please reach out to support.
And looking for support led me here.
How can I use '[my-app-name].page.link' as my Dynamic Link so that I can pass dynamicLinkDomain to auth().sendSignInLinkToEmail and get the password-less authentication working?
Thank you!

I can't comment, but it seems that the answer you're looking for is in this question answered by Jeff Avis.
In short: type in anything.page.link and firebase will verify if it's valid or not.
It seems that the problem you're facing is that you've already used the domain you are trying to reuse, and deleted it! that's why it's blocked by firebase for the time being at least.

Related

Firebase dynamic links have started giving the error "Your connection is not private"

The FDL has been working fine in production for a few weeks and has suddenly started show this error in the browser as if it does not have a valid SSL certificate.
The FDL is generated via the API.
Is there a solution to remove this warning for my FDL?
I have raised a support request with GCP but have posted a question in here in case there is something I can do.
Turns out a received an email from Firebase about this 1 working day ago (before the weekend so I did not notice it).
I followed the instructions and several hours later it was working so I am assuming this was the issue.
Note it did not fix the issue immediately.
We’re writing to let you know that your Firebase Dynamic Links (FDL)
project(s) did not have configuration to prevent phishing, so we
generated Allowlist URLs that your Dynamic Links can redirect to.
Specifying a URL allowlist prevents third parties from using your API
key to create Dynamic Links that redirect from your FDL domain to
sites not on the allowlist.
What do I need to do? Review the generated URLs or to add additional
URLs:
Click 3 dot menu icon> Allowlist URL pattern from the Engage > Dynamic
Links page of the Firebase console for each project. Review the
auto-generated allowlist URLs to ensure they cover your intended link
destinations. [Optional] Specify up to ten regular expressions for
additional allowed URLs using RE2 syntax. See the images below for
clarity.
Only URLs that match one of your configured regular expressions can be
successfully used as a Dynamic Link's deep link or fallback link.
Your impacted project(s):
project1 project2
To learn more, see the Allow specific URL patterns documentation.
Feel free to reach out to our Firebase support team for more
assistance.
This issue I tried to reproduce:
I can able to reproduce if in My device setting time zone if I set date older then 1 month then this error will come.

Firebase dynamic link with query parameters

I've been looking at replacing all the links in the firebase password reset and welcome emails with something more custom, so it doesn't look terrible for users (so moving from https://some-app-123f.firebaseapp.com to link.some-app.com).
I thought that the best way to do this might be to use the firebase dynamic links, so I set up link.some-app.com in there. All good so far.
I generated a new dynamic link directly in the web interface. This is basically going to be used for everyone, or that is my hope. Let's call that link link.some-app.com/email-link. I have then set this up to point to https://some-app-123f.firebaseapp.com/__/auth/action. Going to the first takes me to the second, all good so far. The links just open the web, not apps, and no interstitial page.
I can replace the "Action URL" in the email template with link.some-app.com/email-link. When I email a password reset, I get a link that looks like this: https://link.some-app.com/email-link?mode=resetPassword&oobCode=[hash]&apiKey=[key]&lang=en
However, when I click on this link in debug mode (adding d=1 to the end), I get a bunch of errors:
The format of parameter (mode) is not whitelisted for this domain.
So I thought that I could solve this by using the whitelisting feature on the link domain in the firebase console, so I've tried a bunch of different options, but these are the two most permissive (to cover both domain bases, though I am pretty sure I need to be whitelisting the target domain i.e. firebase)
^https://some-app-123f.firebaseapp.com.*$
^https://link.some-app.com/email-link.*$
Am I completely missing something? Is this something that just isn't possible because it is redirecting back to firebase?
tl;dr: I'm trying to create an effectively serverless redirect link to the password reset functionality in firebase using a prettier url than firebase gives you out of the box
Your URL patterns are incorrect. You haven't escaped . Your pattern should be
^https://some-app-123f\.firebaseapp\.com/.*$
You don't need to add the second URL to whitelist.
If an improper program from the Dynamic Links prevents redirection to the sites that are beyond your control then you need to whitelist the URLs where the Dynamic Links can redirect to. For more information regarding whitelisting URLs please visit the link enter here .

How to edit deep link parameter in Firebase Dynamic link

Is there a REST API to update the Deep link property of Firebase DynamicLink?
The Google guide only shows the process to create a short link
, but there is no mention of how to update the deeplink once created.
Edit from Cyril DD :
Using the Firebase website, it's possible to update a dynamic Link and when looking at the network tabs in the console, it calls an API https://firebasedurablelinks-pa.clients6.google.com/v1/updateDurableLink where it's possible to completely update the properties of an existing dynamic link.
But then I'm left with two problems:
I can't see to figure out a way to make this request work in Postman
I need to update a link that was generated with the https://firebasedynamiclinks.googleapis.com/v1/shortLinks API, and therefore does not appear in the list of links in the firebase console
This is an intended behavior, but is a known feature request. Short Dynamic Links created programmatically are designed to be shared peer to peer and isn't meant to be modified later on.
The only way to edit short Dynamic Links is through the Firebase console since short links created through the console are likely to be used in campaigns.
If you have more inputs regarding this function, you can file it as a feature request here https://firebase.google.com/support

Google Play Games Stops Working Properly after adding Firebase Unity

Before adding firebase plugin i used to get the email selection dialog for google play games authenticate and on success i could get the email by using
string email = ((PlayGamesLocalUser) Social.localUser).Email;
But after i have added firebase the dialog doesn't come although it goes in success block after authentication i can only get user id .
Using Play Games Plugin 0.9.3.7.
I need to get user email and make the dialog to show also as before.
Any help ? Thanks
This might be caused because of some issue with conflicting plugins. You should try to resolve this by using Play Services Resolver for Unity - it is available under the Assets menu.

Google Oauth client was deleted. can I restore a new one?

We running a wordpress website use google oauth for third-party social login. (via WP Social Login plugin.) Former engineer is leave, and we cannot have past google account credential.
We face a problem shows:
Error 401
Error: deleted_client
The OAuth client was deleted.
but we can only see old client id and secret from website admin panel.
I wanna to know,
if we set up a new google oauth application id/secret, will it make user crash from login website?
Or, is it possible for us to restore/retrieve former application ownership and make it live again?
This happened to me when I was working on an Add-On (maybe not completely related to this question but similar). I mistakenly deleted a Client ID that I thought we weren't using.
How I solved it:
Created a new project in Google Cloud
Associated the Apps Script project (Add-on) to this new Google Cloud project
Then I re-associated the App Script project with my previous Google Cloud project
The previous step will re-compile, create and associate the Client ID to the App Script project. It will contain all settings from the Client ID manually created and associated with your project in the code.
Maybe this will give some light to anyone having a similar problem.
Here use this link:
https://support.google.com/cloud/answer/6251787?hl=en
You have to reach google and they will help you out, this is the only solution you can do.
In my case, the simplest/only path (though certainly not ideal) ended up being to create a new Firebase project and start using that.
This of course can be problematic if you have a lot of data to move and/or a nontrivial data schema - say, with nested collections. For me, it was worth the effort to get unblocked from Sign-In suddenly failing to work.
... ah, OAuth fun
=======
If you are trying to make the new Client ID work .. though it's not a total solution, but after searching for a while, found this config option in Firebase console - where you enable Google Sign In.
So if you generate a new OAuth Client ID, update the ID & secret there.
After I did this, it went from a 401 error to a 400 mis_direct , which I think was step in the right direction.

Resources