Puedes aumentar el control sobre el desarrollo de la marca de tus Dynamic Links si usas tu propio dominio en lugar de un subdominio page.link
. Con los dominios personalizados, puedes crear Dynamic Links similares a los de estos 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 que aparece antes de link-suffix se denomina prefijo de URL y contiene el dominio personalizado del Dynamic Link y un prefijo de ruta de acceso. Deberás proporcionar un prefijo de URL cuando crees Dynamic Links.
Debes tener el permiso de editor o propietario en tu proyecto de Firebase para configurar un dominio personalizado.
Usa tu dominio web para Dynamic Links
Puedes usar el mismo dominio para Dynamic Links y las páginas web, los vínculos universales y los vínculos de apps. Sin embargo, en este caso, debes asegurarte de que las URLs de los Dynamic Links no entren en conflicto con las URLs web. Cuando configuras Dynamic Links a fin de que usen un prefijo de URL determinado, todas las URLs que comienzan con ese prefijo se consideran Dynamic Links, por lo que no puedes usar las URLs que lo contienen para apuntar a contenido alojado común.
Por ejemplo, si deseas crear un Dynamic Link al recurso https://example.com/my-resource
(una página web, un vínculo universal o de app), no
puedes usar https://example.com/
como el prefijo de la URL de Dynamic Links, ya que se
trataría a https://example.com/my-resource
como si fuera un Dynamic Link.
En lugar de eso, debes usar un prefijo de URL que tenga un dominio o prefijo de ruta de acceso distinto.
Por lo tanto, los siguientes Dynamic Links de formato largo (y los vínculos cortos equivalentes) no funcionarán correctamente, ya que las URL que especifica el parámetro link
comienzan por el prefijo de URL de Dynamic Link, https://example.com/
:
https://example.com/?link=https://example.com/my-resource https://example.com/?link=https://example.com/resources/my-resource
No obstante, los siguientes Dynamic Links en formato largo (y los vínculos cortos equivalentes) funcionarán correctamente, ya que los prefijos de URL no entran en conflicto con las URL de 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
Configura un dominio personalizado en Firebase console
Puedes configurar un dominio personalizado completamente en Firebase console. Para ello, deberás hacer lo siguiente:
Si aún no has configurado Firebase Hosting para tu proyecto, abre la página de Hosting de Firebase console, haz clic en Comenzar y sigue las instrucciones de configuración. No es obligatorio completar los pasos indicados en este momento.
Abre la página de Dynamic Links en Firebase console.
Si nunca has usado Dynamic Links, haz clic en Comenzar. De lo contrario, haz clic en Agregar prefijo de URL, en el menú desplegable.
Luego, completa el asistente de configuración y, cuando se te solicite hacerlo, especifica el dominio y el prefijo de ruta de acceso que quieres usar.
Solo para iOS: En el archivo
Info.plist
de tu proyecto de Xcode, crea una clave con el nombreFirebaseDynamicLinksCustomDomains
y configúrala con los prefijos de URL de Dynamic Links de la app. Por ejemplo:<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/link</string> <string>https://example.com/promos</string> </array>
Configura un dominio personalizado de forma manual
En algunas situaciones, como cuando ya configuraste un dominio personalizado para Dynamic Links y quieres agregar otro o cuando vas a agregar un dominio que ya está conectado a un sitio de Hosting, debes configurar el dominio personalizado de forma manual.
Para ello, deberás hacer lo siguiente:
Si aún no lo has hecho, conecta el dominio a Firebase Hosting.
Configurar tu dominio con Firebase Hosting incluye crear el archivo de configuración
firebase.json
en el directorio de tu proyecto local.Actualiza a la última versión de Firebase CLI (v6.5.0 o posterior).
Configura tu sitio de Hosting para Dynamic Links en el archivo
firebase.json
de tu proyecto. Si el proyecto tiene muchos sitios, asegúrate de configurar el sitio que está conectado al dominio que quieres usar.Establece
appAssociation
enAUTO
. Con esta configuración, Hosting generará de forma dinámica los archivosassetlinks.json
yapple-app-site-association
cuando se soliciten.Especifica los prefijos de ruta de acceso que deseas usar para Dynamic Links. Para ello, configura las reglas de reescritura con
dynamicLinks
establecido entrue
. Las solicitudes que se envían a esas rutas de acceso se dirigen mediante proxies a Dynamic Links.A diferencia de las reglas que reescriben las rutas de acceso hacia las URL, las reglas de reescritura de Dynamic Links no pueden incluir expresiones regulares.
Si tienes varias reglas de reescritura en tu sitio, ten 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 } ] }
La configuración anterior te permite crear Dynamic Links con prefijos de URL similares a estos ejemplos:
https://your-domain/promos/link-suffix https://your-domain/links/share/link-suffix
Si usas este dominio solo para Dynamic Links, puedes usar la ruta de acceso de origen de
/**
a fin de crear Dynamic Links sin prefijo de ruta de acceso:{ "source": "/**", "dynamicLinks": true }
La regla anterior te permite crear Dynamic Links similares al de este ejemplo:
https://your-domain/link-suffix
Implementa los cambios en la configuración de Hosting con este comando:
firebase deploy --only hosting
Puedes verificar el contenido que se implementó de
firebase.json
con la API de REST para Hosting (opcional).Solo para iOS: En el archivo
Info.plist
de tu proyecto de Xcode, crea una clave con el nombreFirebaseDynamicLinksCustomDomains
y configúrala con los prefijos de URL de Dynamic Links de la app. 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
En el caso de Dynamic Links, debes tener muy en cuenta el orden de prioridad de hosting.
- Debes asegurarte de que tu prefijo de URL de Dynamic Links no entre en conflicto con las configuraciones de hosting de prioridad más alta. Por ejemplo, el contenido estático alojado siempre tiene prioridad sobre las reescrituras.
- Dentro del atributo
rewrites
, la respuesta de Hosting seguirá la regla especificada por el primer glob desource
que capture la ruta de acceso solicitada.
Por ejemplo, si configuras un Dynamic Link para your-domain/source-path/link-suffix
, pero también tienes contenido estático en your-domain/source-path/index.html
, este último tiene prioridad. Un usuario final verá index.html
en vez
del Dynamic Link. De la misma forma, si tienes contenido estático en your-domain/source-path/link-suffix
, el usuario final verá ese contenido en lugar del Dynamic Link.
Si quieres usar el mismo desarrollo de la marca en Dynamic Links y Hosting, te recomendamos una de las siguientes opciones para el prefijo de URL de Dynamic Links:
Configura tu atributo
source
para que coincida con un prefijo de ruta de acceso. Por ejemplo, si tienes un dominio personalizado deexample.com
, la regla de reescritura podría ser la siguiente:// Domain is example.com "rewrites": [ { "source": "/links/**", // Dynamic Links start with "https://example.com/links/" "dynamicLinks": true } ]
Configura un subdominio para usar con Dynamic Links y, luego, configura el atributo
source
para que coincida con ese subdominio. Por ejemplo, si tienes un subdominio delinks.example.com
, la regla de reescritura podría ser la siguiente:// Domain is links.example.com "rewrites": [ { "source": "/**", // Dynamic Links start with "https://links.example.com/" "dynamicLinks": true } ]