- Uma conta google
considerando que vc já tenha o Node/NPM instalado
- Criar projeto no console do Firebase
- Overview do projeto
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
- 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.
- 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
- 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.
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 localmenteproblema de CORSfirebase serve
servirá functions e hosting ao mesmo tempo- 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