Skip to content

Instantly share code, notes, and snippets.

@evlymn
Last active October 27, 2021 11:35
Show Gist options
  • Save evlymn/3bf4083c8ba329cb8c8a3d755abb801e to your computer and use it in GitHub Desktop.
Save evlymn/3bf4083c8ba329cb8c8a3d755abb801e to your computer and use it in GitHub Desktop.
Firebase Hosting

Firebase Hosting

Parte 1

O que é preciso para iniciar?

  • Uma conta google

Dependências

considerando que vc já tenha o Node/NPM instalado

Acessar projeto usando o Firebase CLI (Implantar seu site)

  • Criar pasta do projeto, entrar nela
  • logar no firebase firebase login
  • Inicializar o projeto firebase init
  • Selecionar recursos, Functions e Hosting
  • Selecionar opções

Deploy

  • Fazer deploy para o hosting firebase deploy : Logo após o deploy será mostrado uma url mais ou menos assim nome-do-projeto.firebaseapp.com, copie e cole no seu browser e verá o site implementado.
  • Comentário de deploy firebase deploy -m "primeiro deploy" : Esse comentário será exibido com as outras informações de implantação na página do Firebase Hosting do seu projeto.`
  • Rollback de implantações : Se você quiser fazer rollback para uma implantação anterior, passe o cursor sobre a entrada na lista, clique no ícone do menu flutuante e selecione Rollback.

Domínio personalizado

  • Dentro do console do Firebase em Hosting, clique em conectar domínio
  • Insira o domínio ou subdomínio, se for a primeira vez que vc insere esse domínio, o google irá querer verificar pedindo para vc inserir um registro txt em seu provedor de DNS, ou apenas dois registros tipo A, com dois IPs.
  • Aguardar o provisionamento do certificado SSL

Domínios autorizados

  • Após adicionar um domínio personalizado é necessário liberar ele para logar no projeto, para isso vá em console Authentication na aba métodos de login, desça até Domínios autorizados, clique em Adicionar domínio e simplesmente adicione todos os domínios que vc adicionou ao seu projeto e que queira que faça login nele.

Parte 2

Agora vamos juntar o que foi criado com as Cloud Functions

  • Adicionar a imagem no Storage (assim diminuir o tamanho que iremos usar de espaço no Hosting)
  • Criar a function que irá retornar o html
  • Testar localmente a function firebase serve --only functions
  • Criar o rewrite para a function no arquivo firebase.json
  • Implementar chamada da do conteúdo no corpo do html, xmlHttpRequest, coisa simples.
  • Testar rewrite localmente firebase serve servirá functions e hosting ao mesmo tempo problema de CORS
  • se tudo ok fazer deploy firebase deploy -m "conteúdo cloud functions"fará deploy de functions e hosting ao mesmo tempo, mensagem servirá somente para o hosting (não esquecer de trocar a url na chamada do conteúdo no html)

Você pode configurar um ou mais sites do Firebase Hosting em um único projeto do Firebase

Esse é um recurso disponível apenas no plano Blaze, Pagamento por utilização, então vamos começar a "pagar"

  • Para fazer upgrade do projeto
  • Criar novos sites admin e api
  • Definir targets para cada novo site firebase target:apply hosting default evlymn-dev firebase target:apply hosting admin evlymn-dev-admin firebase target:apply hosting api evlymn-dev-api
  • Alterar firebase.json para adicionar novos sites
"hosting": [{
    "target" : "default",
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  },
{
   "target" : "api",
    "public": "api",
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  },,
{
   "target" : "admin",
    "public": "admin",
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }]
  
  • Adicionar as pastas api e admin ao projeto
  • Adicionar qualquer conteúdo admin e api a arquivos index.html as pastas criadas
  • Em api refazer rewrite da Cloud Function do conteúdo do site default, testar localmente somente as Clou Functions e o site api, firebase serve --only functions, hosting:api
  • Trocar url no html do site default para a url do site da api, testar Cloud Functions e site default firebase serve --only functions, hosting:default
  • Fazer deploy firebase deploy -m "deploy de todos os sites com troca de functions para o site da api", irá fazer deploy de todos os sites e das functions
  • Inserir sub domínios personalizados para cada site e esperar a propagação =D
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment