Configurer un domaine personnalisé pour les liens dynamiques

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 :

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

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

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

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

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

  2. Passez à la dernière version de l'interface CLI Firebase (v6.5.0 ou version ultérieure).

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

    • Définissez appAssociation sur AUTO. Avec ce paramètre, Hosting génère dynamiquement assetlinks.json et apple-app-site-association fichiers 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 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

  4. Déployez les modifications de votre configuration Hosting :

    firebase deploy --only hosting

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

  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 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 premier source glob 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 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 disposez d'un sous-domaine de 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
    } ]