Configurer un domaine personnalisé pour les liens dynamiques

Vous pouvez mieux contrôler l'image de marque 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 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. 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.

Pour configurer un domaine personnalisé, vous devez disposer de l'autorisation d'éditeur ou de propriétaire pour votre projet Firebase.

Utiliser votre domaine Web pour Dynamic Links

Vous pouvez utiliser le même domaine pour votre Dynamic Links, vos pages Web, vos liens universels et vos liens vers une application. Toutefois, 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 utiliser 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 Dynamic Link. Vous devez utiliser un préfixe d'URL avec un autre domaine ou un autre préfixe de chemin d'accès.

Par conséquent, les Dynamic Links longs 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 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 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 console Firebase. Pour ce faire :

  1. Si vous n'avez pas encore 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.

  2. Ouvrez la page Dynamic Links de la console Firebase.

  3. 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.

    Ensuite, suivez l'assistant de configuration en indiquant le domaine et le préfixe de chemin d'accès que vous souhaitez utiliser lorsque vous y êtes invité.

  4. iOS uniquement : Dans le fichier Info.plist de votre projet Xcode, créez une clé appelée FirebaseDynamicLinksCustomDomains 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 :

  1. Associez 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 local de votre projet.

  2. Mettez à jour la CLI Firebase vers la dernière version (v6.5.0 ou version ultérieure).

  3. Configurez votre site Hosting pour Dynamic Links dans le fichier firebase.json de votre projet. Si votre projet comporte plusieurs sites, veillez à configurer celui qui est associé au domaine que vous souhaitez utiliser.

    • Définissez appAssociation sur AUTO. Avec ce paramètre, Hosting génère dynamiquement les fichiers assetlinks.json et apple-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 sur true. Les requêtes adressées à ces chemins sont transmises par proxy à 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 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 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 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

  4. Déployez les modifications apportées à la configuration Hosting :

    firebase deploy --only hosting

    (Facultatif) Vous pouvez vérifier le contenu firebase.json déployé à l'aide de l'API REST Hosting.

  5. iOS uniquement : Dans le fichier Info.plist de votre projet Xcode, créez une clé appelée FirebaseDynamicLinksCustomDomains 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, 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 les configurations d'hébergement de priorité supérieure (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 premier glob source 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 à l'adresse 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 avez du contenu statique à l'adresse 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 identité visuelle 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 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 source pour qu'il corresponde à ce sous-domaine. Par exemple, si vous avez un sous-domaine links.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
    } ]