Configurer un domaine personnalisé pour les liens dynamiques

Vous pouvez avoir un meilleur contrôle sur la marque de vos liens dynamiques 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 avant link-suffix est appelée le préfixe de l'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éez des liens dynamiques.

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

Utilisation de 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 lien dynamique n'entrent pas en conflit avec vos URL Web. Lorsque vous configurez des liens dynamiques pour utiliser un préfixe d'URL particulier, toutes les URL qui commencent par ce préfixe sont traitées comme des liens dynamiques, vous ne pouvez donc pas utiliser des URL avec 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, Universal Link ou App Link), vous ne pouvez pas utiliser https://example.com/ comme préfixe d'URL Dynamic Links, 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 complètement 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 Démarrer , puis suivez les instructions de configuration. Vous n'avez pas à suivre 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 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 des liens dynamiques 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 avez déjà configuré un domaine personnalisé pour les liens dynamiques 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 votre répertoire de projet local.

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

  3. Configurez votre site d'hébergement pour les liens dynamiques dans le fichier firebase.json de votre projet. Si votre projet comporte plusieurs sites, assurez-vous de 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 demandes adressées à ces chemins sont transmises par proxy aux liens dynamiques.

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

    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 les liens dynamiques, vous pouvez utiliser un chemin source de /** pour créer des liens dynamiques 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 des liens dynamiques 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 les liens dynamiques, soyez particulièrement attentif à l'ordre de priorité des hébergements .

  • Assurez-vous que le préfixe de votre 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 de l'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 un 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 les liens dynamiques et l'hébergement, envisagez l'une des options suivantes pour votre préfixe d'URL de liens dynamiques :

  • Définissez votre attribut source pour qu'il corresponde à un préfixe de chemin. Par exemple, si vous avez 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 les liens dynamiques, puis définissez votre attribut source pour qu'il corresponde à ce sous-domaine. Par exemple, si vous avez 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
    } ]