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:
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.
Abra la página Dynamic Links de Firebase console.
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.
Solo iOS : en el archivo
Info.plist
de su proyecto Xcode, cree una clave llamadaFirebaseDynamicLinksCustomDomains
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:
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.Actualice a la versión más reciente de Firebase CLI (v6.5.0 o posterior).
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
enAUTO
. Con esta configuración, Hosting genera dinámicamenteassetlinks.json
yapple-app-site-association
cuando se solicitan.Especifique los prefijos de ruta que desea usar para Dynamic Links configurando reglas de reescritura con
dynamicLinks
establecido entrue
. 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
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 .Solo iOS : en el archivo
Info.plist
de su proyecto Xcode, cree una clave llamadaFirebaseDynamicLinksCustomDomains
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 globosource
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 deexample.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 delinks.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 } ]