You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> **Deprecated:**Firebase Dynamic Links is deprecated and should not be adopted in projects that don't already use it. Functionality for the primary use cases of store/web routing and deferred/regular deep-linking will shut down on August 25, 2025. Firebase Authentication currently uses Firebase Dynamic Links to customize Authentication links, but the Firebase team will provide an update to ensure that this functionality continues working after the Firebase Dynamic Links service is shut down. See the [Dynamic Links Deprecation FAQ](https://firebase.google.com/support/dynamic-links-faq) for more information.
9
+
# Firebase Dynamic Links
10
10
11
-
# Installation
11
+
⚠️ **DEPRECATED** ⚠️
12
12
13
-
This module requires that the `@react-native-firebase/app` module is already setup and installed. To install the "app" module, view the
14
-
[Getting Started](/) documentation.
13
+
This package has been deprecated and removed from the React Native Firebase repository.
15
14
16
-
This module also requires that the `@react-native-firebase/analytics` module is already setup and installed. To install the "analytics" module, view it's [Getting Started](/analytics/usage) documentation.
15
+
## Why was it deprecated?
17
16
18
-
```bash
19
-
# Install & setup the app module
20
-
yarn add @react-native-firebase/app
17
+
Firebase Dynamic Links has been deprecated by Google and will be shut down on August 25th, 2025. For more information about the deprecation and migration options, please visit:
# If you're developing your app using iOS, run this command
26
-
cd ios/ && pod install
27
-
```
21
+
## Migration Options
28
22
29
-
If you're using an older version of React Native without autolinking support, or wish to integrate into an existing project,
30
-
you can follow the manual installation steps for [iOS](/dynamic-links/usage/installation/ios) and [Android](/dynamic-links/usage/installation/android).
23
+
The deprecation FAQ provides detailed guidance on how to migrate from Firebase Dynamic Links, including:
31
24
32
-
# What does it do
25
+
-**Full feature parity**: Use alternative deep-linking service providers
26
+
-**Simple deep-linking**: Migrate to App Links and Universal Links. [See Firebase documentation](https://firebase.google.com/support/guides/app-links-universal-links).
27
+
-**No replacement needed**: Remove the package entirely
33
28
34
-
Dynamic Links are links that work the way you want, on either iOS or Android and whether or not your app is already installed.
29
+
## Timeline
35
30
36
-
<Youtubeid="LvY1JMcrPF8" />
31
+
-**August 25th, 2025**: Firebase Dynamic Links service will be completely shut down
32
+
- All existing links will stop working
33
+
- All APIs will return error responses
37
34
38
-
With Dynamic Links, your users get the best available experience for the platform they open your link on. If a user opens
39
-
a Dynamic Link on iOS or Android, they can be taken directly to the linked content in your app.
40
-
41
-
# Usage
42
-
43
-
## Firebase Setup
44
-
45
-
1. Open the Dynamic Links tab and configure a new domain for your app. In this test example, we've created one for `https://rnfbtestapplication.page.link`.
46
-
47
-

48
-
49
-
2. Create a dynamic link with your domain in the Firebase console. The freshly created dynamic link URL will appear in the table.
50
-
51
-

52
-
53
-
## iOS Setup
54
-
55
-
> Notes: Currently, iOS requires a workaround to make method swizzling work. The workaround is described in [this github.qkg1.topment](https://github.com/invertase/react-native-firebase/issues/4548#issuecomment-1252028059). Without this, dynamic link matching behavior may be inconsistent.
56
-
> If you are using Expo Managed Workflow, be sure to load the [@react-native-firebase/dynamic-links config plugin](https://rnfirebase.io/#managed-workflow) to automatically apply the workaround.
57
-
58
-
To setup Dynamic Links on iOS, it is a **prerequisite** that you have an Apple developer account [setup](https://developer.apple.com/programs/enroll/).
59
-
60
-
1. Add an `App Store ID` & `Team ID` to your app in your Firebase console. If you do not have an `App Store ID` yet, you can put any number in here for now. Your `Team ID` can be found in your Apple developer console.
61
-
62
-

63
-
64
-
2. Test the domain you created in your Firebase console (first step in `Firebase Setup`). Go to the following location in your browser `[your domain]/apple-app-site-association`. The response will have a `details` array property containing an object that has the property `appID`. That will be your app's app ID (It may take some
65
-
time for your domain to register). Please ensure it is registered before proceeding.
66
-
67
-
3. Once you're sure your domain is registered, you need to head over to your Apple developer console and create a provisioning profile for your app. Please ensure you've enabled the `Associated Domain` capability which you should check before proceeding.
68
-
69
-

70
-
71
-
4. Open your project in Xcode and open your app under the `TARGETS` header. Click the `Signing & Capabilities` tab. You will need to ensure your `Team` is registered, and your `Provisioning Profile` field is completed. Please add the domain you created in your
72
-
Firebase console to the `Associated Domains` and prefix with `applinks:`
73
-
74
-

75
-
76
-
5. Click the `Info` tab, and add a `URL Type` to your project. The `Identifier` can be called `Bundle Id` or whatever you wish. Add your bundle identifier to the `URL Schemes` property.
77
-
78
-

79
-
80
-
### Dynamic Links With Custom Domains
81
-
82
-
If you have set up a [custom domain](https://firebase.google.com/docs/dynamic-links/custom-domains) for your Firebase project, you must add the dynamic link URL prefix into your iOS project's `info.plist` file by using the `FirebaseDynamicLinksCustomDomains` key. You can add multiple URLs as well.
83
-
84
-
Example:
85
-
86
-
```xml
87
-
<?xml version="1.0" encoding="UTF-8"?>
88
-
<!DOCTYPEplist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
89
-
<plistversion="1.0">
90
-
<dict>
91
-
<key>FirebaseDynamicLinksCustomDomains</key>
92
-
<array>
93
-
<string>https://custom.domain.io/bla</string>
94
-
<string>https://custom.domain.io/bla2</string>
95
-
</array>
96
-
97
-
...other settings
98
-
99
-
</dict>
100
-
</plist>
101
-
```
102
-
103
-
If you don't add this, the dynamic link will invoke your app, but you cannot retrieve any deep link data you may need within your app, as the deep link will be completely ignored.
104
-
105
-
Additionally specify the allowed URLs (by clicking the 3 dot menu icon > `Allowlist URL pattern` from the Dynamic Links page of the Firebase console) using regular expressions. Any URL that doesn't match one of the patterns will cause your Dynamic Links to return HTTP error 400.
106
-
107
-
## iOS Troubleshooting
108
-
109
-
1. Ensure you have the right URL in the Associated Domains in Xcode.
110
-
111
-

112
-
113
-
2. Ensure you have input the correct Team ID in the Firebase console.
114
-
115
-

116
-
117
-
3. Paste your link into the iOS Notes app. Long press the link which will open the menu and ensure you click "Open in [YOUR APP NAME]". Be sure _not_ to press "Open in Safari" as that will disable that dynamic link domain for your device.
118
-
119
-

120
-
121
-
4. Ensure your dynamic link domain has an Apple app site association file for your app. Check in the browser by going to the following address: `[your domain]/apple-app-site-association`
5. There is a known bug that you can follow [here](http://bit.ly/2y8gey4) that stops Apple from downloading the app site association file. The work around is to uninstall your app, restart your device and reinstall your app.
126
-
127
-
6. Make sure your [deep link parameter](https://firebase.google.com/docs/dynamic-links/create-manually?authuser=0#parameters) is properly URL-encoded, especially if it contains a query string.
128
-
129
-
7. Try the `performDiagnostics` API on the Dynamic Links module, while running the app on a real device and watching output from either Xcode or Console app. You may search for "Links" and you will see the diagnostic output.
130
-
131
-
## Android Setup
132
-
133
-
1. Create a SHA-256 fingerprint using these [instructions](https://developers.google.com/android/guides/client-auth) for your app, and add to your app in your Firebase console.
134
-
135
-

136
-
137
-
2. Test the domain you created in your Firebase console (first step in `Firebase Setup`). Go to the following location in your browser `[your-domain]/.well-known/assetlinks.json`. The response will have a `target` object containing a `package_name` which ought to have your app's package name. Please
138
-
do not proceed until you see this, it may take a while to register.
139
-
3. Add your domains to the android/app/src/main/AndroidManifest.xml so that your app knows what links to open in the app. Refer to [the official docs](https://firebase.google.com/docs/dynamic-links/android/receive#add-an-intent-filter-for-deep-links) for example code.
140
-
141
-
## Testing Your Dynamic Link
142
-
143
-
Simulate a user opening the link by pasting it into a text message, notepad or email, and pressing it.
144
-
145
-
Alternatively, use the [uri-scheme](https://www.npmjs.com/package/uri-scheme) package.
146
-
147
-
```bash
148
-
npx uri-scheme open "https://xyz.page.link" --[ios|android]
149
-
```
150
-
151
-
### Application Is Not Installed On Device
152
-
153
-
The link should take you to the App Store / Google Play, at which point you can abort and install the app manually instead.
154
-
155
-
While this works on iOS even if the app is not published, testing on Android requires you to have published at least an _internal track_ version, to which the testing device also needs to have access to.
156
-
157
-
The iOS Simulator throws an `address is invalid` error instead of opening the App Store, which you can safely ignore.
158
-
159
-
## Create a Link
160
-
161
-
You can create dynamic links via the Firebase console, your app or even your custom API. Please refer to [Firebase create dynamic link documentation](https://firebase.google.com/docs/dynamic-links/create-links) for further details. Below, we will show how to build links as part of your application code:
0 commit comments