Configurer un domaine personnalisé pour Dynamic Links

Vous pouvez avoir un meilleur contrôle sur la marque de vos 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 liens dynamiques 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 précédant link-suffix est appelée préfixe d'URL et contient à la fois votre domaine Dynamic Link personnalisé et un préfixe de chemin. Vous devrez fournir un préfixe d'URL lorsque vous créerez des liens dynamiques.

La configuration d'un domaine personnalisé nécessite l'autorisation d'éditeur ou de propriétaire sur votre projet Firebase.

Utiliser votre domaine Web pour les liens dynamiques

Vous pouvez utiliser le même domaine pour vos liens dynamiques et vos pages Web, liens universels et liens d'application, mais si vous le faites, vous devez veiller à ce que vos URL de liens dynamiques 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 commençant par ce préfixe sont traitées comme des liens dynamiques. Vous ne pouvez donc pas utiliser d'URL portant ce préfixe pour pointer vers du contenu hébergé ordinaire.

Par exemple, si vous souhaitez créer un lien dynamique 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 de liens dynamiques, car cela entraînerait le traitement https://example.com/my-resource comme un lien dynamique. Au lieu de cela, vous devez utiliser un préfixe d'URL avec un domaine différent ou un préfixe de chemin différent.

Ainsi, les liens dynamiques 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 de lien dynamique, https://example.com/ :

 https://example.com/?link=https://example.com/my-resource
 https://example.com/?link=https://example.com/resources/my-resource

Mais les liens dynamiques 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 entièrement un domaine personnalisé dans la console Firebase. Faire cela:

  1. Si vous n'avez pas configuré Firebase Hosting pour votre projet, ouvrez la page Hébergement de la console Firebase, cliquez sur Commencer et suivez les instructions de configuration. Vous n'êtes pas obligé de suivre les étapes indiquées pour le moment.

  2. Ouvrez la page Liens dynamiques de la console Firebase.

  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, terminez l'assistant de configuration en spécifiant le domaine et le préfixe de chemin 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. Par exemple:

    <key>FirebaseDynamicLinksCustomDomains</key>
    <array>
      <string>https://example.com/link</string>
      <string>https://example.com/promos</string>
    </array>
    

Configurer manuellement un domaine personnalisé

Dans certaines situations, par exemple lorsque vous disposez déjà d'un domaine personnalisé configuré pour Dynamic Links et que vous souhaitez ajouter un autre domaine, ou lorsque vous ajoutez un domaine déjà connecté à un site d'hébergement, vous devez configurer votre domaine personnalisé manuellement.

Faire cela:

  1. Connectez votre domaine à Firebase Hosting si vous ne l'avez 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. Mettez à jour vers la dernière version de Firebase CLI (v6.5.0 ou version ultérieure).

  3. Configurez votre site d'hébergement pour Dynamic Links dans le fichier firebase.json de votre projet. Si votre projet comporte plusieurs sites, veillez à configurer le site connecté au domaine que vous souhaitez utiliser.

    • Définissez appAssociation sur AUTO . Avec ce paramètre, l'hébergement 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 que vous souhaitez utiliser pour les liens dynamiques en définissant des règles de réécriture avec dynamicLinks défini sur true . Les requêtes vers ces chemins sont transmises par proxy à Dynamic Links.

      Contrairement aux règles qui réécrivent les chemins d’accès aux URL, les règles de réécriture Dynamic Link ne peuvent pas contenir d’expressions régulières.

      Si vous disposez de plusieurs règles de réécriture pour votre site, sachez que l'hébergement exécute la première règle de réécriture qui correspond à la requête.

    Par exemple:

    "hosting": {
      // ...
      "appAssociation": "AUTO",
      "rewrites": [
        {
          "source": "/promos/**",
          "dynamicLinks": true
        },
        {
          "source": "/links/share/**",
          "dynamicLinks": true
        }
      ]
    }
    

    Avec la configuration ci-dessus, vous pouvez créer des liens dynamiques 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 utilisez ce domaine uniquement pour Dynamic Links, vous pouvez utiliser un chemin source de /** pour créer des Dynamic Links sans préfixe de chemin :

    {
      "source": "/**",
      "dynamicLinks": true
    }
    

    Avec la règle ci-dessus, vous pouvez créer des liens dynamiques comme dans l'exemple suivant :

    https://your-domain/link-suffix

  4. Déployez vos modifications de configuration d'hébergement :

    firebase deploy --only hosting

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

  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. Par exemple:

    <key>FirebaseDynamicLinksCustomDomains</key>
    <array>
      <string>https://example.com/promos</string>
      <string>https://example.com/links/share</string>
    </array>
    

Ordre de priorité pour les liens dynamiques et l'hébergement

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é a toujours la priorité sur les réécritures).
  • Dans l'attribut rewrites , la réponse d'hébergement obéira à la règle spécifiée par le premier glob source qui capture le chemin demandé .

Par exemple, si vous configurez un lien dynamique 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 plutôt que le lien dynamique. De même, si vous avez du contenu statique sur your-domain / source-path / link-suffix , l'utilisateur final verra le contenu statique plutôt que le lien dynamique.

Si vous souhaitez utiliser la même marque pour Dynamic Links et l'hébergement, 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 vous disposez d'un domaine personnalisé example.com , votre règle de réécriture pourrait être :

    // 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 pourrait être :

    // Domain is links.example.com
    "rewrites": [ {
      "source": "/**",  // Dynamic Links start with "https://links.example.com/"
      "dynamicLinks": true
    } ]