Vous pouvez mieux contrôler la marque de vos Dynamic Links' en utilisant votre propre
domaine au lieu d'un page.link sous-domaine. Avec les domaines personnalisés, vous pouvez créer
Dynamic Links comme dans 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, et 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.
Pour configurer un domaine personnalisé, vous devez disposer de l'autorisation d'éditeur ou de propriétaire sur votre projet Firebase.
Utiliser votre domaine Web pour Dynamic Links
Vous pouvez utiliser le même domaine pour vos Dynamic Links et vos pages Web, vos liens universels et vos liens d'application, mais si vous le faites, vous devez veiller à ce que vos URL Dynamic Link n'entrent 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 qui commencent par ce préfixe sont traitées comme des Dynamic Links. Vous ne pouvez donc pas utiliser d'URL avec ce préfixe pour pointer vers du contenu hébergé ordinaire.
Par exemple, si vous souhaitez créer un Dynamic Link vers la ressource
https://example.com/my-resource (une page Web, un lien universel ou un 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 un Dynamic Link.
Vous devez plutôt utiliser un préfixe d'URL avec un domaine ou un
préfixe de chemin d'accès différent.
Par conséquent, les Dynamic Links au format long suivants (et les liens courts équivalents) ne fonctionneront pas comme
prévu, car les URL spécifiées par le paramètre link commencent par le
Dynamic Link préfixe d'URL, 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 au format long suivants (et les liens courts équivalents) peuvent fonctionner,
car les préfixes d'URL n'entrent 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
Vous pouvez généralement configurer un domaine personnalisé entièrement dans la Firebase console. Pour ce faire :
Si vous n'avez pas configuré Firebase Hosting pour votre projet, ouvrez la Hosting page de la Firebase console, cliquez Commencer, puis suivez les instructions de configuration. Vous n'avez pas besoin d'effectuer les étapes indiquées pour le moment.
Ouvrez la Dynamic Links page de la Firebase console.
Si vous n'avez jamais utilisé Dynamic Links auparavant, cliquez sur Commencer. Sinon, cliquez sur Ajouter un préfixe d'URL dans le menu déroulant.
Ensuite, suivez 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.plistde votre projet Xcode, créez une clé appeléeFirebaseDynamicLinksCustomDomainset 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 un domaine personnalisé manuellement
Dans certaines situations, 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à connecté à un Hosting site, 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.jsondans le répertoire de votre projet local.Passez à la dernière version de l'interface CLI Firebase (v6.5.0 ou version ultérieure).
Configurez votre Hosting site pour Dynamic Links dans le fichier
firebase.jsonde votre projet. Si votre projet comporte plusieurs sites, veillez à configurer celui qui est connecté au domaine que vous souhaitez utiliser.Définissez
appAssociationsurAUTO. Avec ce paramètre, Hosting génère dynamiquementassetlinks.jsonetapple-app-site-associationfichiers 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
dynamicLinksdéfini surtrue. Les requêtes adressées à ces chemins d'accès sont transmises à 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 votre site comporte plusieurs règles de réécriture, 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 Dynamic Links avec des préfixes d'URL comme dans 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 d'accès source
/**pour créer Dynamic Links sans préfixe de chemin d'accès :{ "source": "/**", "dynamicLinks": true }Avec la règle ci-dessus, vous pouvez créer Dynamic Links comme dans l'exemple suivant :
https://your-domain/link-suffix
Déployez les modifications de votre configuration Hosting :
firebase deploy --only hosting
(facultatif) Vous pouvez vérifier le contenu
firebase.jsondéployé à l'aide de l' Hosting API REST.iOS uniquement : dans le fichier
Info.plistde votre projet Xcode, créez une clé appeléeFirebaseDynamicLinksCustomDomainset 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, soyez particulièrement attentif à l'ordre de priorité de l'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é plus élevée (par exemple, le contenu statique hébergé est toujours prioritaire par rapport aux réécritures).
- Dans l'attribut
rewrites, la réponse Hosting respecte la règle spécifiée par le premiersourceglob 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 disposez également de contenu statique sur
your-domain/source-path/index.html, le
contenu statique est prioritaire. Un utilisateur final verra index.html plutôt que
le Dynamic Link. De même, si vous disposez de contenu statique sur
your-domain/source-path/link-suffix,
l'utilisateur final verra le contenu statique plutôt que le Dynamic Link.
Si vous souhaitez utiliser la même marque pour Dynamic Links et Hosting, envisagez l'une des options suivantes pour votre préfixe d'URL Dynamic Links :
Définissez votre attribut
sourcepour qu'il corresponde à un préfixe de chemin d'accès. Par exemple, si vous disposez d'un domaine personnaliséexample.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
sourcepour qu'il corresponde à ce sous-domaine. Par exemple, si vous disposez d'un sous-domaine delinks.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 } ]