/capacitor-firebase-dynamic-links

Capacitor Plugin for Firebase Dynamic Links

Primary LanguageSwiftMIT LicenseMIT

@pantrist/capacitor-firebase-dynamic-links

npm version npm downloads per month

Capacitor plugin for Firebase Dynamic Links.

⚠️ Firebase shutdown at the 25th August 2025 ⚠️

Firebase, and also this plugin, will work until that day. But it won't be working anymore after that. If you plan to implement something similar, you should search for alternatives. I went with capacitor-branch-deep-links.

Configuration

Android

None

iOS

Configure your app to use dynamic links based on the official Firebase documentation. You need to apply the following three steps for iOS. They should be the same as the first three steps of the official Firebase documentation.

  1. In the Info tab of your app's Xcode project, create a new URL type to be used for Dynamic Links. Set the Identifier field to a unique value and the URL scheme field to be your bundle identifier, which is the default URL scheme used by Dynamic Links.
  2. In the Capabilities tab of your app's Xcode project, enable Associated Domains and add the following to the Associated Domains list:
applinks:your_dynamic_links_domain
  1. If you want to receive Dynamic Links with a fully-custom domain, in your Xcode project's Info.plist file, create a key called FirebaseDynamicLinksCustomDomains and set it to your app's Dynamic Links URL prefixes. For example:
FirebaseDynamicLinksCustomDomains
    https://example.com/promos
    https://example.com/links/share

Web

None

Example

import {
  FirebaseDynamicLinks,
  LinkConfig,
} from '@pantrist/capacitor-firebase-dynamic-links';

function createShortLink(): Promise<string> {
   const config: LinkConfig = {
      domainUriPrefix: 'https://example.page.link',
      uri: 'https://example.page.link/sharing',
   };
   return FirebaseDynamicLinks.createDynamicShortLink(config).then(link => link.value);
}

function listenToDeepLinkOpen() {
   FirebaseDynamicLinks.addListener('deepLinkOpen', (data) => {
       console.log(data);
   });
}

API

addListener('deepLinkOpen', ...)

addListener(eventName: 'deepLinkOpen', listenerFunc: (data: DeepLinkOpen) => void) => PluginListenerHandle

Adds a listener to the opening of a dynamic link

Param Type Description
eventName 'deepLinkOpen' 'deepLinkOpen' for listening to open links
listenerFunc (data: DeepLinkOpen) => void Callback function to be called when the event is fired

Returns: PluginListenerHandle


removeAllListeners()

removeAllListeners() => Promise<void>

Remove all native listeners for this plugin


createDynamicLink(...)

createDynamicLink(linkConfiguration: LinkConfig) => Promise<{ value: string; }>

Creates a new dynamic Link based on the configuration

Param Type Description
linkConfiguration LinkConfig configuration for the link

Returns: Promise<{ value: string; }>


createDynamicShortLink(...)

createDynamicShortLink(linkConfiguration: LinkConfig) => Promise<{ value: string; }>

Creates a new short dynamic link based on the configuration. Its basically a shortened version of the dynamic link. *

Param Type Description
linkConfiguration LinkConfig configuration for the link

Returns: Promise<{ value: string; }>


Interfaces

PluginListenerHandle

Prop Type
remove () => Promise<void>

DeepLinkOpen

Prop Type Description
url string The URL that was opened

LinkConfig

Prop Type Description
uri string The link your app will open.
domainUriPrefix string Your Dynamic Link URL prefix, which you can find in the Firebase console. A Dynamic Link domain looks like the following: https://example.page.link.
androidParameters AndroidParameters Android specific configuration
iosParameters IOSParameters iOS specific configuration
navigationInfo NavigationInfoParameters Additional parameters for the navigation of the app.
socialMeta SocialMetaTagParameters Configuration for showed data when sharing the link with social media.
googleAnalytics GoogleAnalyticsParameters Google Play analytics paremeters
iTunesConnectAnalytics ItunesConnectAnalyticsParameters iTunes Connect analytics parameters
webApiKey string Firebase Web Api key

AndroidParameters

Prop Type Description
packageName string Your bundle ID (e.g. com.example.android)
fallbackUrl string The link to open when the app isn't installed. Specify this to do something other than install your app from the Play Store when the app isn't installed, such as open the mobile web version of the content, or display a promotional page for your app.
minimumVersion number The versionCode of the minimum version of your app that can open the link. If the installed app is an older version, the user is taken to the Play Store to upgrade the app.

IOSParameters

Prop Type Description
bundleId string Your bundle ID (e.g. com.example.android)
appStoreId string Your app's App Store ID, used to send users to the App Store when the app isn't installed
fallbackUrl string The link to open when the app isn't installed. Specify this to do something other than install your app from the App Store when the app isn't installed, such as open the mobile web version of the content, or display a promotional page for your app.
customScheme string Your app's custom URL scheme, if defined to be something other than your app's bundle ID
ipadFallbackUrl string The link to open on iPads when the app isn't installed. Specify this to do something other than install your app from the App Store when the app isn't installed, such as open the web version of the content, or display a promotional page for your app.
ipadBundleId string The bundle ID of the iOS app to use on iPads to open the link. The app must be connected to your project from the Overview page of the Firebase console.
minimumVersion string The version number of the minimum version of your app that can open the link. This flag is passed to your app when it is opened, and your app must decide what to do with it.

NavigationInfoParameters

Prop Type Description
forcedRedirectEnabled boolean If set to true, skip the app preview page when the Dynamic Link is opened, and instead redirect to the app or store. The app preview page (enabled by default) can more reliably send users to the most appropriate destination when they open Dynamic Links in apps; however, if you expect a Dynamic Link to be opened only in apps that can open Dynamic Links reliably without this page, you can disable it with this parameter. This parameter will affect the behavior of the Dynamic Link only on iOS.

SocialMetaTagParameters

Prop Type Description
title string The title to use when the Dynamic Link is shared in a social post.
description string The description to use when the Dynamic Link is shared in a social post.
imageUrl string The URL to an image related to this link. The image should be at least 300x200 px, and less than 300 KB.

GoogleAnalyticsParameters

Prop Type Description
source string Sets utm_source
medium string Sets utm_medium
campaign string Sets utm_campaign
term string Sets utm_term
content string Sets utm_content

ItunesConnectAnalyticsParameters

Prop Type Description
providerToken string Sets pt
affiliateToken string Sets at
campaignToken string Sets ct