= Hospede um site dinâmico no Google Firebase usando Node.js e Cloud Firestore DB = Tushar Kapoor: (httpswww.tusharck.com/) URL Git de demonstração: httpsgithub.com/tusharck/firebase-demo = Por que Firebase Hosting? = O Firebase é uma plataforma de aplicativos abrangente construída na infraestrutura do Google, portanto, fornece uma maneira segura, rápida, gratuita (opções pagas também disponíveis para recursos adicionais) e fácil de hospedar seu conteúdo no aplicações web ou móveis == Principais recursos e benefícios do nível gratuito: == - Dá domínio personalizado gratuito& SSL(SSL fornece uma camada de segurança padrão para httpsconnections - Cloud Firestore: um banco de dados flexível e escalável para sincronização de dados em tempo real entre aplicativos cliente - Outros recursos: Cloud Functions, Cloud Messaging (FCM), Crashlytics, Dynamic Links, Hosting, ML Kit, Storage, Performance Monitoring, Predictions and Test Lab (A funcionalidade e os recursos desses produtos podem ser aumentados com a compra de um plano pago, mas os serviços de nível gratuito são muito bons. Para ver os planos, verifique os preços do Firebase) - Escalonamento automático de recursos = Etapas para hospedar seu site dinâmico no Firebase = == Requisitos == **1. Conta do Google**Se você não tem uma conta do Google, você precisa se inscrever para uma. Você pode fazer isso acessando httpsaccounts.google.com/SignUp. **2. Node.js e npm** Mac/WindowsVocê pode baixar o instalador em httpsnodejs.org/en/download/. Linux Siga as etapas abaixo para instalar o Node.js: 1. Abra um terminal 2. Execute os seguintes comandos: sudo apt-get install curlcurl -sL httpsdeb.nodesource.com/ configuração_13.x| sudo bash -sudo apt install nodejs ** Eu usei Nota: ** ** setup_13.xporque na época do tutorial a versão mais recente era **13**você pode verificar a versão mais recente acessando httpsnodejs.org/en/ Para verificar se Node.js e npm foram instalados com sucesso, execute os seguintes comandos, que mostrarão a versão instalada: nó -v npm -v **3. Firebase-CLI (Command-Line InterfaceEstas são as ferramentas para gerenciar, visualizar e implantar os projetos do Firebase npm install -g firebase-tools = Etapa 1: Criar projeto do Firebase = - Acesse httpsfirebase.google.com e Entrar no canto superior direito - Clique em Vá para o console, no canto superior direito - Em seguida, clique em Criar projeto, conforme mostrado abaixo 4. O próximo passo é inserir o nome do seu projeto e clicar em continuar 5. Pressione continuar para habilitar o Google Analytics para seu projeto Firebase (se você não quiser, marque para desabilitar) 6. Selecione o local mais próximo para o Google Analytics 7. Clique em **Crie o projeto e espere carregar. Então você verá algo como abaixo = Etapa 2: inicializar o login do Firebase = - Abra uma linha de comando/terminal, crie e vá para um novo diretório mkdir meu-firebase-projectcd meu-firebase-project 2. Para hospedar um site no Firebase, faça login no firebase usando o seguinte comando. Depois de executar o comando, uma janela do navegador será aberta solicitando que você faça login no firebase usando suas credenciais do Google. Digite as credenciais lá e o Firebase fará login no seu sistema logon do firebase = Etapa 3: inicializar o projeto Firebase em seu sistema = - Agora temos que inicializar o projeto que criamos no Firebase console no sistema. Para fazer execute o comando abaixo firebase init 2. Pressione a tecla para baixo e selecione **duas coisas **pressionando a tecla **barra de espaço - Funções - Hospedagem Então **pressione Enter** para continuar 3. Em seguida, selecione então aperte enter **Use um projeto existente** 4. Pressione Enter no **my-firebase-project** **ou o nome do projeto que você usouou o nome do projeto que você usou 5. Selecione **Javascript** e pressione enter 6. Você pode dizer **Não** para Você quer usar o ESLint para detectar prováveis ​​bugs e impor estilo? 7. Digite **Sim** para instalar as dependências com npm 8. Aqui temos que fazer duas tarefas: - Você deve selecionar o diretório no qual seu site e ativos residirão. Por padrão é pubicvocê pode pressionar enter para continuar ou pode mudar para o nome do diretório desejado - Tipos Simpara a página de aplicativo único para que seus URLs dinâmicos possam ser redirecionados para o destino adequado 9. Teste o aplicativo firebase em seu sistema local executando o seguinte comando. Então vá para **httplocalhost:5000** para ver seu site básico em execução firebase serve --apenas hospedagem,funções Você deve ver algo como isto abaixo depois de abrir o **httplocalhost:5000** URL 10. Feche o servidor do terminal = Etapa 4: Instalando pacotes e criando diretório de exibições para site dinâmico = - Aqui vamos alternar dentro do diretório de funções para fazer isso use funções de cd **2. Install Express**É uma estrutura de aplicativo da web Node.js mínima e flexível npm eu expresso --save **3. Instalar Handle Bars**É um mecanismo de modelagem para Node.js usado para o front-end dinâmico do site npm i guidão --save **4. Instalar consolidar** npm eu consolide --save 5. Crie uma pasta chamada **views** dentro da pasta **functions** na qual armazenaremos todo o código do frontend mkdir Visualizações 6. Volte para o diretório principal executando o seguinte comando: cd . = Etapa 5: configurar o Firestore (Cloud Database) = == Configuração do banco de dados == - Acesse httpsconsole.firebase.google.com/ - Selecione seu projeto - Selecione Banco de dados do painel à esquerda 4. Clique em **Criar banco de dados** 5. Selecione Iniciar no modo de teste porque, caso contrário, você não conseguirá acessar o banco de dados do seu sistema. Mudaremos essa configuração assim que terminarmos o desenvolvimento do site Então clique **Próximo** depois de fazer isso 6. Selecione a localização do seu Firestore DB **Depois de definir este local, você não poderá alterá-lo posteriormente. Observação: ** == CriarDados == - Clique em iniciar coleção 2. Digite o **ID da coleção que você pode experimentar por enquanto 3. Insira os dados de amostra. Digitar **sample_doc **como o **ID do documento. **Digite **Título** dentro do ** Campo. Eu gosto de Nuvem** dentro do **Valor Em seguida, clique em **Salvar** = Etapa 6: Construindo o conteúdo dinâmico do site = Iremos dividir a parte em duas partes, na primeira veremos como buscar os dados do Firestore e utilizar no site. Na segunda parte, veremos como enviar os dados do formulário **Primeiro, faremos o download das credenciais para acessar o Firestore** 2. Clique em **configurações** no painel esquerdo e vá para **Configurações do projeto** 3. Vá para **Contas de serviço** e clique em **Gerar nova chave privada 4. Clique em **Gerar Chave Abrirá um pop-up para baixar a chave. Armazene a chave dentro da pasta **funções** do seu site == Obtendo do Firestore == - Abrir index.jdentro da pasta de funções 2. Precisamos definir algumas das bibliotecas que queremos usar em nosso aplicativo. Estas são as mesmas bibliotecas que instalamos anteriormente funções const = require('firebase-functionsconst express = require('expressconst engines = require('consolidatevar hbs = require('handlebarsconst admin = require('firebase-admin 3. Aqui definimos algumas coisas: - Inicialize o aplicativo usando expresso - Vamos definir nosso motor como guidão - Em seguida, diremos ao expresso que nosso código de front-end estará dentro da pasta views const app = expressapp.engine('hbs',engines.handlebars);app.set('viewsviewsapp.set('view enginehbs 4. Autorize seu aplicativo a acessar seu Firestore DB *Observação:* 1. Mudança **YOUR_SDK_NAMEjson com o arquivo que você baixou para **credenciais para acessar o Firestore2. Altere a URL do banco de dados para a URL do seu banco de dados. Para ver o URL, você pode **Configurações >Conta de serviço** var serviceAccount = requer YOUR_SDK_NAME.jsonadmin.initializeApp({credential: admin.credential.cert(serviceAccount), databaseURL: "httpsmyfirebaseproject-bx54dasx3.firebaseio.com 5. Função para buscar dados do Firestore - O ID da coleção é amostra - ID do documento é sample_doc Definimos o acima ao inserir os dados de amostra função assíncrona getFirestoreconst firestore_con = aguarde admin.firestoreconst writeResult = firestore_con.collection('sampledoc('sample_docgetthen(doc =>{ if (!doc.exists) { console.log('Esse documento não existe } else {return doc.data .catch(err =>{ console.log('Erro ao obter documento', errreturn writeResult } **Usamos o Note: ** **async** porque temos que esperar que a operação de promessa seja concluída entre o banco de dados e nosso site 6. Crie a rota e envie o resultado para o front end app.getasync (solicitação, resposta) var db_result = await getFirestoreresponse.render('indexdb_resultexports.app = functions.https.onRequest(app); 7. Criar **index.hbs** dentro da pasta **views**. hbs é um arquivo handelbars Nota: ** 8. Escreva este código HTML básico dentro **index.hbs** para ver o resultado obtido
" method="post" >
Sample Form First name:

Last name: