Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Configurar um domínio personalizado para links dinâmicos

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Você pode ter maior controle sobre a marca de seus links dinâmicos usando seu próprio domínio em vez de um subdomínio page.link . Com domínios personalizados, você pode criar links dinâmicos como os exemplos a seguir:

https://example.com/link-suffix
https://example.com/links/promos/link-suffix
https://links.example.com/link-suffix
https://ex.amp.le/link-suffix

A parte do URL antes link-suffix é chamada de prefixo do URL e contém seu domínio de link dinâmico personalizado e um prefixo de caminho. Você precisará fornecer um prefixo de URL ao criar links dinâmicos.

A configuração de um domínio personalizado requer permissão de Editor ou Proprietário no seu projeto do Firebase.

Usando seu domínio da web para links dinâmicos

Você pode usar o mesmo domínio para seus links dinâmicos e suas páginas da web, links universais e links de aplicativos, mas se o fizer, você deve tomar cuidado para que seus URLs de links dinâmicos não entrem em conflito com seus URLs da web. Quando você configura links dinâmicos para usar um prefixo de URL específico, todos os URLs que começam com esse prefixo são tratados como links dinâmicos, portanto, você não pode usar URLs com esse prefixo para apontar para conteúdo hospedado comum.

Por exemplo, se você quiser criar um link dinâmico para o recurso https://example.com/my-resource (uma página da Web, link universal ou link de aplicativo), não poderá usar https://example.com/ como o prefixo de URL de links dinâmicos, pois isso faria com que https://example.com/my-resource fosse tratado como um link dinâmico. Em vez disso, você deve usar um prefixo de URL com um domínio diferente ou um prefixo de caminho diferente.

Portanto, os seguintes links dinâmicos de formato longo (e links curtos equivalentes) não funcionarão conforme o esperado porque os URLs especificados pelo parâmetro de link começam com o prefixo do URL do link dinâmico, https://example.com/ :

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

Mas os seguintes links dinâmicos de formato longo (e links curtos equivalentes) podem funcionar, porque os prefixos de URL não entram em conflito com os URLs 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

Configurar um domínio personalizado no console do Firebase

Normalmente, você pode configurar um domínio personalizado completamente no console do Firebase. Para fazer isso:

  1. Se você não configurou o Firebase Hosting para seu projeto, abra a página Hosting do Firebase console, clique em Get Started e clique nas instruções de configuração. Você não precisa concluir as etapas indicadas neste momento.

  2. Abra a página de links dinâmicos do console do Firebase.

  3. Se você nunca usou Dynamic Links antes, clique em Começar . Caso contrário, clique em Adicionar prefixo de URL no menu suspenso.

    Em seguida, conclua o assistente de configuração, especificando o domínio e o prefixo do caminho que deseja usar quando solicitado.

  4. Somente iOS : no arquivo Info.plist do seu projeto Xcode, crie uma chave chamada FirebaseDynamicLinksCustomDomains e defina-a com os prefixos de URL de links dinâmicos do seu aplicativo. Por exemplo:

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

Configurar um domínio personalizado manualmente

Em algumas situações, como quando você já tem um domínio personalizado configurado para Dynamic Links e deseja adicionar outro domínio, ou quando você está adicionando um domínio já conectado a um site de hospedagem, você precisa configurar seu domínio personalizado manualmente.

Para fazer isso:

  1. Conecte seu domínio ao Firebase Hosting , caso ainda não tenha feito isso.

    A configuração de seu domínio com o Firebase Hosting inclui a criação do arquivo de configuração firebase.json no diretório local do projeto.

  2. Atualize para a versão mais recente da Firebase CLI (v6.5.0 ou posterior).

  3. Configure seu site de hospedagem para links dinâmicos no arquivo firebase.json do seu projeto. Se o seu projeto tiver vários sites, certifique-se de configurar o site conectado ao domínio que deseja usar.

    • Defina appAssociation como AUTO . Com essa configuração, o Hosting gera dinamicamente os assetlinks.json e apple-app-site-association quando solicitados.

    • Especifique os prefixos de caminho que você deseja usar para links dinâmicos definindo regras de reescrita com dynamicLinks definido como true . As solicitações para esses caminhos são enviadas por proxy para links dinâmicos.

      Ao contrário das regras que reescrevem caminhos para URLs, as regras de reescrita de link dinâmico não podem conter expressões regulares.

      Se você tiver várias regras de reescrita para seu site, saiba que o Hosting executa a primeira regra de reescrita que corresponde à solicitação.

    Por exemplo:

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

    Com a configuração acima, você pode criar links dinâmicos com prefixos de URL como os exemplos a seguir:

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

    Se você usar este domínio apenas para links dinâmicos, poderá usar um caminho de origem de /** para criar links dinâmicos sem prefixo de caminho:

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

    Com a regra acima, você pode criar links dinâmicos como no exemplo a seguir:

    https://your-domain/link-suffix

  4. Implante suas alterações de configuração de hospedagem:

    firebase deploy --only hosting

    (opcional) Você pode verificar o conteúdo do firebase.json implantado usando a API REST do Hosting .

  5. Somente iOS : no arquivo Info.plist do seu projeto Xcode, crie uma chave chamada FirebaseDynamicLinksCustomDomains e defina-a com os prefixos de URL de links dinâmicos do seu aplicativo. Por exemplo:

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

Ordem de prioridade para links dinâmicos e hospedagem

Para links dinâmicos, esteja particularmente atento à ordem de prioridade de hospedagem .

  • Certifique-se de que seu prefixo de URL de links dinâmicos não entre em conflito com configurações de hospedagem de prioridade mais alta (por exemplo, conteúdo estático hospedado sempre tem prioridade sobre regravações).
  • Dentro do atributo rewrites , a resposta do Hosting obedecerá à regra especificada pelo primeiro glob de source que captura o caminho solicitado .

Por exemplo, se você configurar um link dinâmico para your-domain / source-path / link-suffix mas também tiver conteúdo estático em your-domain / source-path /index.html , o conteúdo estático terá precedência. Um usuário final verá index.html em vez do link dinâmico. Da mesma forma, se você tiver conteúdo estático em your-domain / source-path / link-suffix , o usuário final verá o conteúdo estático em vez do Dynamic Link.

Se você quiser usar a mesma marca para links dinâmicos e hospedagem, considere uma das seguintes opções para o prefixo de URL de links dinâmicos:

  • Defina seu atributo de source para corresponder a um prefixo de caminho. Por exemplo, se você tiver um domínio personalizado de example.com , sua regra de reescrita pode ser:

    // Domain is example.com
    "rewrites": [ {
      "source": "/links/**",  // Dynamic Links start with "https://example.com/links/"
      "dynamicLinks": true
    } ]
    
  • Configure um subdomínio a ser usado para links dinâmicos e defina seu atributo de source para corresponder a esse subdomínio. Por exemplo, se você tiver um subdomínio de links.example.com , sua regra de reescrita poderá ser:

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