Vous pouvez mieux contrôler le branding de votre Dynamic Links en utilisant votre propre domaine au lieu d'un sous-domaine page.link
. Avec les domaines personnalisés, vous pouvez créer des Dynamic Links comme les exemples suivants :
https://example.com/link-suffix https://example.com/links/promos/link-suffix https://links.example.com/link-suffix https://ex.amp.le/link-suffix
La partie de l'URL avant link-suffix est appelée préfixe d'URL. Elle contient à la fois votre domaine Dynamic Link personnalisé et un préfixe de chemin d'accès. Vous devrez fournir un préfixe d'URL lorsque vous créerez Dynamic Links.
La configuration d'un domaine personnalisé nécessite l'autorisation Éditeur ou Propriétaire sur votre projet Firebase.
Utiliser votre domaine Web pour Dynamic Links
Vous pouvez utiliser le même domaine pour votre Dynamic Links et vos pages Web, liens universels et liens vers une application. Toutefois, si vous le faites, vous devez veiller à ce que vos URL Dynamic Link ne soient pas en conflit avec vos URL Web. Lorsque vous configurez Dynamic Links pour qu'il utilise un préfixe d'URL particulier, toutes les URL commençant par ce préfixe sont traitées comme Dynamic Links. Vous ne pouvez donc pas utiliser d'URL avec ce préfixe pour rediriger vers du contenu hébergé ordinaire.
Par exemple, si vous souhaitez créer un Dynamic Link pour la ressource https://example.com/my-resource
(page Web, lien universel ou lien d'application), vous ne pouvez pas utiliser https://example.com/
comme préfixe d'URL Dynamic Links, car cela entraînerait le traitement de https://example.com/my-resource
comme une Dynamic Link.
Vous devez plutôt utiliser un préfixe d'URL avec un autre domaine ou un autre préfixe de chemin d'accès.
Par conséquent, la forme longue Dynamic Links suivante (et les liens courts équivalents) ne fonctionnera pas comme prévu, car les URL spécifiées par le paramètre link
commencent par le préfixe d'URL Dynamic Link, https://example.com/
:
https://example.com/?link=https://example.com/my-resource https://example.com/?link=https://example.com/resources/my-resource
Toutefois, les Dynamic Links longs (et les liens courts équivalents) suivants peuvent fonctionner, car les préfixes d'URL ne sont pas en conflit avec les URL link
:
https://link.example.com/?link=https://example.com/my-resource https://example.com/links/?link=https://example.com/my-resource https://ex.amp.le/?link=https://example.com/my-resource
Configurer un domaine personnalisé dans la console Firebase
En général, vous pouvez configurer entièrement un domaine personnalisé dans la console Firebase. Pour ce faire :
Si vous n'avez pas configuré Firebase Hosting pour votre projet, ouvrez la page Hosting de la console Firebase, cliquez sur Commencer, puis suivez les instructions de configuration. Vous n'avez pas besoin d'effectuer les étapes indiquées pour le moment.
Ouvrez la page Dynamic Links de la console Firebase.
Si vous n'avez jamais utilisé Dynamic Links, cliquez sur Commencer. Sinon, cliquez sur Ajouter un préfixe d'URL dans le menu déroulant.
Terminez ensuite l'assistant de configuration en spécifiant le domaine et le préfixe de chemin d'accès que vous souhaitez utiliser lorsque vous y êtes invité.
iOS uniquement: dans le fichier
Info.plist
de votre projet Xcode, créez une clé appeléeFirebaseDynamicLinksCustomDomains
et définissez-la sur les préfixes d'URL Dynamic Links de votre application. Exemple :<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/link</string> <string>https://example.com/promos</string> </array>
Configurer manuellement un domaine personnalisé
Dans certains cas, par exemple lorsque vous avez déjà configuré un domaine personnalisé pour Dynamic Links et que vous souhaitez en ajouter un autre, ou lorsque vous ajoutez un domaine déjà associé à un site Hosting, vous devez configurer votre domaine personnalisé manuellement.
Pour ce faire :
Connectez votre domaine à Firebase Hosting si ce n'est pas déjà fait.
La configuration de votre domaine avec Firebase Hosting inclut la création du fichier de configuration
firebase.json
dans le répertoire de projet local.Mettez à jour la dernière version de la CLI Firebase (version 6.5.0 ou ultérieure).
Configurez votre site Hosting pour Dynamic Links dans le fichier
firebase.json
de votre projet. Si votre projet comporte plusieurs sites, veillez à configurer le site associé au domaine que vous souhaitez utiliser.Définissez
appAssociation
surAUTO
. Avec ce paramètre, Hosting génère de manière dynamique les fichiersassetlinks.json
etapple-app-site-association
lorsqu'ils sont demandés.Spécifiez les préfixes de chemin d'accès que vous souhaitez utiliser pour Dynamic Links en définissant des règles de réécriture avec
dynamicLinks
défini surtrue
. Les requêtes adressées à ces chemins sont acheminées vers Dynamic Links.Contrairement aux règles qui réécrivent les chemins d'accès en URL, les règles de réécriture Dynamic Link ne peuvent pas contenir d'expressions régulières.
Si vous avez défini plusieurs règles de réécriture pour votre site, sachez que Hosting exécute la première règle de réécriture qui correspond à la requête.
Exemple :
"hosting": { // ... "appAssociation": "AUTO", "rewrites": [ { "source": "/promos/**", "dynamicLinks": true }, { "source": "/links/share/**", "dynamicLinks": true } ] }
Avec la configuration ci-dessus, vous pouvez créer des Dynamic Links avec des préfixes d'URL comme les exemples suivants :
https://your-domain/promos/link-suffix https://your-domain/links/share/link-suffix
Si vous n'utilisez ce domaine que pour Dynamic Links, vous pouvez utiliser un chemin source
/**
pour créer Dynamic Links sans préfixe de chemin:{ "source": "/**", "dynamicLinks": true }
Avec la règle ci-dessus, vous pouvez créer des Dynamic Links comme dans l'exemple suivant :
https://your-domain/link-suffix
Déployez les modifications de configuration Hosting:
firebase deploy --only hosting
(Facultatif) Vous pouvez vérifier le contenu
firebase.json
déployé à l'aide de l'API REST Hosting.iOS uniquement : dans le fichier
Info.plist
de votre projet Xcode, créez une clé appeléeFirebaseDynamicLinksCustomDomains
et définissez-la sur les préfixes d'URL Dynamic Links de votre application. Exemple :<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/promos</string> <string>https://example.com/links/share</string> </array>
Ordre de priorité pour Dynamic Links et Hosting
Pour Dynamic Links, tenez particulièrement compte de l'ordre de priorité d'hébergement.
- Assurez-vous que votre préfixe d'URL Dynamic Links n'entre pas en conflit avec des configurations d'hébergement de priorité supérieure (par exemple, le contenu statique hébergé a toujours la priorité sur les réécritures).
- Dans l'attribut
rewrites
, la réponse Hosting obéit à la règle spécifiée par le premier globsource
qui capture le chemin d'accès demandé.
Par exemple, si vous configurez un Dynamic Link pour your-domain/source-path/link-suffix
, mais que vous avez également du contenu statique sur your-domain/source-path/index.html
, le contenu statique est prioritaire. Un utilisateur final verra index.html
au lieu de Dynamic Link. De même, si vous disposez d'un contenu statique à your-domain/source-path/link-suffix
, l'utilisateur final verra le contenu statique plutôt que Dynamic Link.
Si vous souhaitez utiliser le même branding pour Dynamic Links et Hosting, envisagez l'une des options suivantes pour votre préfixe d'URL Dynamic Links :
Définissez votre attribut
source
pour qu'il corresponde à un préfixe de chemin. Par exemple, si votre domaine personnalisé estexample.com
, votre règle de réécriture peut être la suivante:// Domain is example.com "rewrites": [ { "source": "/links/**", // Dynamic Links start with "https://example.com/links/" "dynamicLinks": true } ]
Configurez un sous-domaine à utiliser pour Dynamic Links, puis définissez votre attribut
source
pour qu'il corresponde à ce sous-domaine. Par exemple, si vous disposez d'un sous-domainelinks.example.com
, votre règle de réécriture peut être la suivante :// Domain is links.example.com "rewrites": [ { "source": "/**", // Dynamic Links start with "https://links.example.com/" "dynamicLinks": true } ]