Configurer un domaine personnalisé pour les liens dynamiques

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 :

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

  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.

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

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

  2. Mettez à jour la dernière version de la CLI Firebase (version 6.5.0 ou 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 le site associé au domaine que vous souhaitez utiliser.

    • Définissez appAssociation sur AUTO. Avec ce paramètre, Hosting génère de manière dynamique 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 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

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

  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, 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 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 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é est 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 disposez d'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
    } ]