# Firebase (Deprecated)

{% hint style="warning" %}
On August 25th, 2025, Firebase Dynamic Links was shut down.
{% endhint %}

[Firebase Dynamic Links](https://firebase.google.com/docs/dynamic-links) are links that work the way you want, on multiple platforms, and whether or not your app is already installed.

{% embed url="<https://youtu.be/LvY1JMcrPF8>" %}

With Dynamic Links, your users get the best available experience for the platform they open your link on. If a user opens a Dynamic Link on iOS or Android, they can be taken directly to the linked content in your native app. If a user opens the same Dynamic Link in a desktop browser, they can be taken to the equivalent content on your website.

In addition, Dynamic Links work across app installs: if a user opens a Dynamic Link on iOS or Android and doesn't have your app installed, the user can be prompted to install it; then, after installation, your app starts and can access the link.

{% hint style="danger" %}
Right now, we don't support 'custom domain' (only xxxx.page.link) & links analytics. We might consider adding this in the future.
{% endhint %}

## Create a new Firebase Project

* Go to <https://console.firebase.google.com/>
* Click New Project, enter the project name

{% hint style="info" %}
You can use the same one for Android push notifications.
{% endhint %}

## Enable Dynamic Links

* Go to **All products** tab, scroll down, click **Dynamic Links**, and then **Get started**
* Fill out **Domain** field

{% hint style="info" %}
For now, we support only Google domains (xxxxxx.page.link). Custom domain support will be added in the future.
{% endhint %}

<figure><img src="/files/NcabqxpUmkiZZfEWjl5o" alt=""><figcaption></figcaption></figure>

## Set your first allowed domains

* Click on **Dynamic Links** in the left menu and then click **Set domains**

<figure><img src="/files/0pNgJ2GQcs7fWD4r6D4J" alt=""><figcaption></figcaption></figure>

* Add allowed domains (a URLs related to  your website)

<figure><img src="/files/fYwAdrB4StkdQm5p3vyP" alt=""><figcaption></figcaption></figure>

## **Add Android & iOS apps**

* Go to **Project Overview** and click **Add App** at the top

{% tabs %}
{% tab title="🍏 Setup iOS App" %}

<figure><img src="/files/0hfZfkidnp2sc4Y7HVOD" alt=""><figcaption></figcaption></figure>

* Add your Bundle ID & App Store ID (You can find this IDs in your App Store Connect account)

<figure><img src="/files/txDqf68stsLGPbtINlw1" alt=""><figcaption></figcaption></figure>

* **Download & Save** a config file (you will need it later)
* **Go to** the [Apple Developer homepage](https://developer.apple.com/account) and select [**Certificates, IDs & Profiles**](https://developer.apple.com/account/resources/certificates/list) \*\*\*\* (left menu)
* Click on the [Identifiers](https://developer.apple.com/account/resources/identifiers/list)
* Select previously [created Bundle Identifier](broken://pages/GO6Q68GbybIEr01M4coS#bundle-identifier)
* Scroll down and enable **Associated Domains**
* Click **Save & Confirm**

![](/files/MhwCRhQ8MSdF2aU2VIPM)
{% endtab %}

{% tab title="🤖 Setup Android App" %}

<figure><img src="/files/dIc82aDX8bMMen2mk9G8" alt=""><figcaption></figcaption></figure>

* Add your Bundle ID (You can find this IDs in your Google Developer Console account or in **Publish** section in Natively)
* Skip SHA-1 field (we will add it in next step)
* **Download & Save** config file (we will need it later)
* Make sure to finish flow and navigate to **Project Overview**
* Go to Project settings, scroll down, select Android app

<figure><img src="/files/BPlhtJLoWOpYQuGcvJ2f" alt=""><figcaption></figcaption></figure>

* Now we need to add app's fingerprints
* You can find these values in your Google Developer Console
* Go to Setup -> App Integrity -> App Signing
* Copy **SHA-1** & **SHA-256** values from **App signing key ceritifcate** section and add it to your firebase Android app

<figure><img src="/files/0VrcYSr0GuPRR7uh6BhV" alt=""><figcaption></figcaption></figure>

* Copy **SHA-1** & **SHA-256** values from **Upload key ceritifcate** section and add it to your firebase Android app

<figure><img src="/files/AHLHZwcbpCCVGrcM87M7" alt=""><figcaption></figcaption></figure>

* Make sure you've added 4 SHA keys

{% hint style="info" %}
If you don't see App integrity keys, make sure you've uploaded at least 1 build of your app to Google Play Console
{% endhint %}
{% endtab %}
{% endtabs %}

## Enable Deeplinks on the Natively platform

That's it. At this step, you need to switch to the Natively app and fill out a few fields

<figure><img src="/files/dRgHAX1XclZT3FJT6Em6" alt=""><figcaption></figcaption></figure>

* Your Firebase Dynamic Links domain
* iOS Config file (GoogleService-Info.plist)
* Android Config file (google-services.json)

## Create Dynamic Links

There are 3 ways (supported by Natively) how you can create a Dynamic Link:

* Using the [Firebase console](https://console.firebase.google.com/project/_/durablelinks/links/). This is useful if you're creating promo links to share on social media.
* Using the [REST API](https://firebase.google.com/docs/dynamic-links/rest). This is the preferred way to dynamically create links on platforms that don't have a Builder API. The [Analytics REST API](https://firebase.google.com/docs/reference/dynamic-links/analytics) can be used to track the performance of promo campaigns created in the console.
* [Manually](https://firebase.google.com/docs/dynamic-links/create-manually). If you don't need to track click data and you don't care if the links are long, you can manually construct Dynamic Links using URL parameters, and by doing so, avoid an extra network round trip.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.buildnatively.com/natively-platform/features/deeplinks/firebase.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
