Ir para o console

Configurar um domínio personalizado para links dinâmicos

Tenha mais controle da marca dos seus links dinâmicos usando seu próprio domínio em vez de um subdomínio page.link. Com domínios personalizados, é possível 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 de link-suffix é chamada de prefixo de URL e contém o domínio do 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 exige permissão de Editor ou Proprietário no seu projeto do Firebase.

Como usar seu domínio da Web para links dinâmicos

É possível usar o mesmo domínio para seus links dinâmicos e páginas da Web, links universais e links de aplicativos. No entanto, se você fizer isso, será necessário prevenir que os URLs do seu link dinâmico não entrem em conflito com os URLs da Web. Quando você configura o link dinâmico para usar um prefixo de URL específico, todos os URLs que começam com esse prefixo são tratados como links dinâmicos. Dessa forma, não é possível usar URLs com esse prefixo para direcionar para o conteúdo hospedado comum.

Por exemplo, se você quer 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 será possível usar https://example.com/ como o prefixo de URL de links dinâmicos, porque isso faria com que https://example.com/my-resource fosse tratado como um link dinâmico. Em vez disso, será necessário usar um prefixo de URL com um domínio diferente ou um prefixo de caminho diferente.

Dessa forma, os seguintes links dinâmicos de formato longo (e links curtos equivalentes) não funcionarão como pretendido, porque os URLs especificados pelo parâmetro link começam com o prefixo de 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

No entanto, os links dinâmicos de formato longo a seguir (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

Geralmente, é possível configurar completamente um domínio personalizado no Console do Firebase. Para fazer isso, siga estas etapas:

  1. Se você não configurou o Firebase Hosting para seu projeto, abra a página do Hosting do Console do Firebase, clique em Primeiros passos e clique nas instruções de configuração. Não é necessário concluir as etapas indicadas no momento.

  2. Abra a página Dynamic Links do Console do Firebase.

  3. Se você não usou o Dynamic Links antes, clique em Primeiros passos. 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 de caminho que você quer usar quando for solicitado.

  4. Apenas para iOS: no arquivo Info.plist do projeto do Xcode, crie uma chave denominada FirebaseDynamicLinksCustomDomains e defina-a como 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 links dinâmicos e quer adicionar outro domínio, ou quando você está adicionando um domínio já conectado a um site do Hosting, é necessário 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 do seu domínio com o Firebase Hosting inclui a criação do arquivo de configuração firebase.json no diretório do projeto local.

  2. Certifique-se de ter a versão 6.5.0 ou posterior da Firebase CLI instalada:

    npm install -g firebase-tools

  3. Configure seu site do Hosting para o Dynamic Links no arquivo firebase.json do seu projeto. Caso seu projeto tenha vários sites, configure o site conectado com o domínio que você quer usar.

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

    • Especifique os prefixos de caminho que você quer usar para links dinâmicos ao definir regras de substituição com dynamicLinks definido como true. As solicitações para esses caminhos são encaminhadas por proxy para o Dynamic Links.

      Ao contrário das regras que substituem caminhos por URLs, as regras de substituição do Dynamic Links não podem conter expressões regulares.

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

    Por exemplo:

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

    Com a configuração acima, é possível 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 esse 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, é possível criar links dinâmicos como o exemplo a seguir:

    https://your-domain/link-suffix

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

    firebase deploy --only hosting

    (opcional) É possível verificar o conteúdo do firebase.json implementado usando a API REST do Hosting.

  5. Apenas para iOS: no arquivo Info.plist do projeto do Xcode, crie uma chave denominada FirebaseDynamicLinksCustomDomains e defina-a como 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>
    

Solicitação de prioridade para o Dynamic Links e o Hosting

Para links dinâmicos, atente-se à ordem de prioridade de hospedagem.

  • Verifique se o prefixo de URL de links dinâmicos não está em conflito com configurações de hospedagem de prioridade mais alta, por exemplo, o conteúdo estático hospedado sempre tem prioridade sobre substituições
  • Dentro do atributo rewrites, a resposta do Hosting obedecerá à regra especificada pelo primeiro glob 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á prioridade. 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 link dinâmico.

Se você quiser usar a mesma marca para o Dynamic Links e o Hosting, use uma das seguintes opções para o prefixo de URL de links dinâmicos.

  • Defina seu atributo source para corresponder a um prefixo de caminho. Por exemplo, se você tiver um domínio personalizado example.com, sua regra de reconfiguração poderia 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 o Dynamic Links e defina seu atributo source para corresponder a esse subdomínio. Por exemplo, se você tiver um subdomínio de links.example.com, sua regra de reconfiguração poderá ser:

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