获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Configurar un dominio personalizado para Dynamic Links

Puede tener un mayor control sobre la marca de sus Dynamic Links utilizando su propio dominio en lugar de un subdominio page.link . Con dominios personalizados, puede crear enlaces dinámicos como los siguientes ejemplos:

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 parte de la URL antes link-suffix se denomina prefijo de URL y contiene tanto su dominio personalizado de Dynamic Link como un prefijo de ruta. Deberá proporcionar un prefijo de URL cuando cree Dynamic Links.

La configuración de un dominio personalizado requiere permiso de Editor o Propietario en su proyecto de Firebase.

Usando su dominio web para Dynamic Links

Puede usar el mismo dominio para sus Dynamic Links y sus páginas web, Universal Links y App Links, pero si lo hace, debe tener cuidado de que sus URL de Dynamic Link no entren en conflicto con sus URL web. Cuando configura Dynamic Links para usar un prefijo de URL en particular, todas las URL que comienzan con ese prefijo se tratan como Dynamic Links, por lo que no puede usar URL con ese prefijo para apuntar a contenido alojado normal.

Por ejemplo, si desea crear un enlace dinámico al recurso https://example.com/my-resource (una página web, enlace universal o enlace de aplicación), no puede usar https://example.com/ como el prefijo de URL de Dynamic Links, porque al hacerlo, https://example.com/my-resource se trataría como un Dynamic Link. En su lugar, debe usar un prefijo de URL con un dominio diferente o un prefijo de ruta diferente.

Por lo tanto, los siguientes enlaces dinámicos de formato largo (y enlaces cortos equivalentes) no funcionarán según lo previsto porque las URL especificadas por el parámetro de link comienzan con el prefijo de URL de enlace dinámico, https://example.com/ :

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

Pero los siguientes enlaces dinámicos de formato largo (y enlaces cortos equivalentes) pueden funcionar, porque los prefijos de URL no entran en conflicto con las URL de los 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

Configurar un dominio personalizado en la consola de Firebase

Por lo general, puede configurar un dominio personalizado completamente en la consola de Firebase. Para hacerlo:

  1. Si no configuró Firebase Hosting para su proyecto, abra la página Hosting de Firebase console, haga clic en Comenzar y siga las instrucciones de configuración. No es necesario que complete los pasos indicados en este momento.

  2. Abra la página Dynamic Links de Firebase console.

  3. Si no ha usado Dynamic Links antes, haga clic en Comenzar . De lo contrario, haga clic en Agregar prefijo de URL en el menú desplegable.

    Luego, complete el asistente de configuración, especificando el dominio y el prefijo de la ruta que desea usar cuando se le solicite.

  4. Solo iOS : en el archivo Info.plist de su proyecto Xcode, cree una clave llamada FirebaseDynamicLinksCustomDomains y configúrela en los prefijos de URL de Dynamic Links de su aplicación. Por ejemplo:

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

Configurar un dominio personalizado manualmente

En algunas situaciones, como cuando ya tiene un dominio personalizado configurado para Dynamic Links y desea agregar otro dominio, o cuando está agregando un dominio que ya está conectado a un sitio de hospedaje, debe configurar su dominio personalizado manualmente.

Para hacerlo:

  1. Conecta tu dominio a Firebase Hosting si aún no lo has hecho.

    La configuración de su dominio con Firebase Hosting incluye la creación del archivo de configuración firebase.json en el directorio de su proyecto local.

  2. Actualice a la versión más reciente de Firebase CLI (v6.5.0 o posterior).

  3. Configure su sitio de Hosting para Dynamic Links en el archivo firebase.json de su proyecto. Si su proyecto tiene varios sitios, asegúrese de configurar el sitio conectado al dominio que desea usar.

    • Establezca appAssociation en AUTO . Con esta configuración, Hosting genera dinámicamente assetlinks.json y apple-app-site-association cuando se solicitan.

    • Especifique los prefijos de ruta que desea usar para Dynamic Links configurando reglas de reescritura con dynamicLinks establecido en true . Las solicitudes a estas rutas se envían a Dynamic Links.

      A diferencia de las reglas que reescriben las rutas a las URL, las reglas de reescritura de Dynamic Link no pueden contener expresiones regulares.

      Si tiene varias reglas de reescritura para su sitio, tenga en cuenta que Hosting ejecuta la primera regla de reescritura que coincide con la solicitud.

    Por ejemplo:

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

    Con la configuración anterior, puede crear enlaces dinámicos con prefijos de URL como los siguientes ejemplos:

    https://your-domain/promos/link-suffix
    https://your-domain/links/share/link-suffix
    

    Si usa este dominio solo para Dynamic Links, puede usar una ruta de origen de /** para crear Dynamic Links sin prefijo de ruta:

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

    Con la regla anterior, puede crear enlaces dinámicos como el siguiente ejemplo:

    https://your-domain/link-suffix

  4. Implemente los cambios de configuración de su Hosting:

    firebase deploy --only hosting

    (opcional) Puede comprobar el contenido de firebase.json desplegado mediante la API REST de alojamiento .

  5. Solo iOS : en el archivo Info.plist de su proyecto Xcode, cree una clave llamada FirebaseDynamicLinksCustomDomains y configúrela en los prefijos de URL de Dynamic Links de su aplicación. Por ejemplo:

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

Orden de prioridad para Dynamic Links y Hosting

Para Dynamic Links, tenga especial cuidado con el orden de prioridad de alojamiento .

  • Asegúrese de que su prefijo de URL de Dynamic Links no entre en conflicto con configuraciones de alojamiento de mayor prioridad (por ejemplo, el contenido estático alojado siempre tiene prioridad sobre las reescrituras).
  • Dentro del atributo de rewrites , la respuesta de Hosting obedecerá la regla especificada por el primer globo source que captura la ruta solicitada .

Por ejemplo, si configura un enlace dinámico para your-domain / source-path / link-suffix pero también tiene contenido estático en your-domain / source-path /index.html , el contenido estático tiene prioridad. Un usuario final verá index.html en lugar de Dynamic Link. De manera similar, si tiene contenido estático en your-domain / source-path / link-suffix , el usuario final verá el contenido estático en lugar del enlace dinámico.

Si desea utilizar la misma marca tanto para Dynamic Links como para Hosting, considere una de las siguientes opciones para su prefijo de URL de Dynamic Links:

  • Configure su atributo de source para que coincida con un prefijo de ruta. Por ejemplo, si tiene un dominio personalizado de example.com , su regla de reescritura podría ser:

    // Domain is example.com
    "rewrites": [ {
      "source": "/links/**",  // Dynamic Links start with "https://example.com/links/"
      "dynamicLinks": true
    } ]
    
  • Configure un subdominio para usar con Dynamic Links, luego configure su atributo de source para que coincida con ese subdominio. Por ejemplo, si tiene un subdominio de links.example.com , su regla de reescritura podría ser:

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