{"id":28470,"date":"2021-06-11T16:46:00","date_gmt":"2021-06-11T13:46:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28470"},"modified":"2021-10-18T04:00:44","modified_gmt":"2021-10-18T01:00:44","slug":"como-conectar-o-firebase-realtime-database-ao-formulario-do-seu-site","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/como-conectar-o-firebase-realtime-database-ao-formulario-do-seu-site\/","title":{"rendered":"Como conectar o Firebase Realtime Database ao formul\u00e1rio do seu site"},"content":{"rendered":"<p>Voc\u00ea deseja armazenar os dados de formul\u00e1rios do seu site no Firebase? Se sim, ent\u00e3o voc\u00ea est\u00e1 no lugar certo. Neste artigo, mostrarei como conectar o banco de dados em tempo real do Firebase ao formul\u00e1rio e armazenar seus dados no Firebase.<\/p>\n<p>O banco de dados Firebase realtime \u00e9 um banco de dados NoSQL hospedado na nuvem. No Firebase, os dados s\u00e3o armazenados como JSON e sincronizados em tempo real com todos os clientes conectados criados com iOS, Android e SDKs de JavaScript. Quando dizemos tempo real, isso significa dados trocados entre aplicativos e banco de dados em tempo real (sem atrasos). Voc\u00ea pode ler mais sobre os recursos do Firebase na <a href=\"https:\/\/firebase.google.com\/docs\/database\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documenta\u00e7\u00e3o<\/a>.<\/p>\n<p>Para este tutorial, vou criar um formul\u00e1rio de contato simples e armazenar os dados do formul\u00e1rio no banco de dados em tempo real do Firebase. Para enviar dados do formul\u00e1rio para o Firebase, usarei o SDK do JavaScript.<\/p>\n<h3>Configura\u00e7\u00e3o do Firebase<\/h3>\n<p>Para come\u00e7ar, <a href=\"https:\/\/console.firebase.google.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">acesse o Firebase console<\/a> e crie um novo projeto. O usu\u00e1rio tamb\u00e9m pode escolher um projeto existente. Depois de criar um novo projeto, voc\u00ea redirecionar\u00e1 para uma p\u00e1gina onde obteria o c\u00f3digo JavaScript do Firebase. Clique em um \u00edcone de c\u00f3digo que abrir\u00e1 um pop-up.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20260-6081d4836b9a0.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20260-6081d4836b9a0.png\" alt=\"Como conectar o Firebase Realtime Database ao formul\u00e1rio do seu site\" ><\/a><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20260-6081d484e50de.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20260-6081d484e50de.png\" alt=\"Como conectar o Firebase Realtime Database ao formul\u00e1rio do seu site\" ><\/a><\/p>\n<p>Copie o c\u00f3digo mostrado no pop-up que ser\u00e1 necess\u00e1rio nas pr\u00f3ximas etapas. No menu do lado esquerdo, clique em &#8216;Banco de dados&#8217; e depois em &#8216;Criar banco de dados&#8217; na se\u00e7\u00e3o Banco de dados em tempo real.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20260-6081d485e1c3f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20260-6081d485e1c3f.png\" alt=\"Como conectar o Firebase Realtime Database ao formul\u00e1rio do seu site\" ><\/a><\/p>\n<p>Ele ir\u00e1 abrir um pop-up, escolher o modo de teste e, finalmente, clicar no bot\u00e3o &#8216;Ativar&#8217;.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20260-6081d485e1c3f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20260-6081d485e1c3f.png\" alt=\"Como conectar o Firebase Realtime Database ao formul\u00e1rio do seu site\" ><\/a><\/p>\n<p>Voc\u00ea ser\u00e1 redirecionado para a pr\u00f3xima tela, onde ver\u00e1 seu banco de dados em tempo real. No momento n\u00e3o h\u00e1 dados, ent\u00e3o seu banco de dados est\u00e1 vazio.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20260-6081d485e1c3f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20260-6081d485e1c3f.png\" alt=\"Como conectar o Firebase Realtime Database ao formul\u00e1rio do seu site\" ><\/a><\/p>\n<h3>Conecte o Firebase Realtime Database ao formul\u00e1rio do seu site<\/h3>\n<p>Conclu\u00edmos a configura\u00e7\u00e3o do Firebase. A pr\u00f3xima coisa que precisa fazer \u00e9 criar um formul\u00e1rio e armazenar os dados do formul\u00e1rio no Firebase. Vamos construir um formul\u00e1rio de contato simples em cima do Bootstrap. Crie um arquivo index.html e adicione o c\u00f3digo abaixo nele.<\/p>\n<pre><code>&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;meta charset=\"UTF-8\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;title&gt;Firebase&lt;\/title&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;link rel=\"stylesheet\" href=\"https:\/\/stackpath.bootstrapcdn.com\/bootstrap\/4.5.0\/css\/bootstrap.min.css\" integrity=\"sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk\" crossorigin=\"anonymous\"&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"row\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"container\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;h2&gt;Contact Form&lt;\/h2&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"alert alert-success success-message\" style=\"display:none;\"&gt;Form submitted successfully.&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;form id=\"contactForm\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"exampleFullName\"&gt;Full Name&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" class=\"form-control fullname\" id=\"exampleFullName\" placeholder=\"Enter Full Name\" required&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"exampleEmail\"&gt;Email&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"email\" class=\"form-control email\" id=\"exampleEmail\" placeholder=\"Enter Email\" required&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"exampleSubject\"&gt;Subject&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" class=\"form-control subject\" id=\"exampleSubject\" placeholder=\"Enter Subject\" required&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"exampleMessage\"&gt;Message&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;textarea class=\"form-control message\" id=\"exampleMessage\" placeholder=\"Enter Message\" cols=\"30\" rows=\"10\" required&gt;&lt;\/textarea&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;button type=\"submit\" class=\"btn btn-primary\"&gt;Submit&lt;\/button&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/form&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jquery\/3.5.1\/jquery.min.js\"&gt;&lt;\/script&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"https:\/\/www.gstatic.com\/firebasejs\/7.15.5\/firebase-app.js\"&gt;&lt;\/script&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"https:\/\/www.gstatic.com\/firebasejs\/7.15.5\/firebase-database.js\"&gt;&lt;\/script&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"js\/main.js\"&gt;&lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>No c\u00f3digo acima, inclu\u00ed um arquivo Firebase JS, antes do <code>main.js<\/code>qual copiei, mais o JS do Realtime Database. Crie um <code>main.js<\/code>arquivo na pasta &#8216;js&#8217;. Este arquivo JS ter\u00e1 l\u00f3gica real para interagir com o Firebase. Adicione o c\u00f3digo copiado do Firebase na parte superior do <code>main.js<\/code>arquivo.<\/p>\n<pre><code>\/\/ Paste the code from Firebase\nvar config = {\n\u00a0\u00a0\u00a0\u00a0apiKey: \"YOUR_API_KEY\",\n\u00a0\u00a0\u00a0\u00a0authDomain: \"Your_AuthDomain\",\n\u00a0\u00a0\u00a0\u00a0databaseURL: \"YOUR_DATABAE_URL\",\n\u00a0\u00a0\u00a0\u00a0projectId: \"YOUR_PROJECT_ID\",\n\u00a0\u00a0\u00a0\u00a0storageBucket: \"YOUR_STORAGE_BUCKET\",\n\u00a0\u00a0\u00a0\u00a0messagingSenderId: \"YOUR_SENDER_ID\",\n\u00a0\u00a0\u00a0\u00a0appId: \"YOUR_APP_ID\"\n};\nfirebase.initializeApp(config);<\/code><\/pre>\n<p>Depois disso, crie uma cole\u00e7\u00e3o sob a qual os dados do formul\u00e1rio seriam armazenados. Voc\u00ea pode dar qualquer nome \u00e0 cole\u00e7\u00e3o. No meu caso, crio uma cole\u00e7\u00e3o chamada &#8216;contactformmessages&#8217;.<\/p>\n<pre><code>\/\/ Reference messages collection\nvar messagesRef = firebase.database().ref('contactformmessages');<\/code><\/pre>\n<p>Por fim, pegaremos todos os valores do formul\u00e1rio e os passaremos ao Firebase no envio do formul\u00e1rio da seguinte maneira.<\/p>\n<pre><code>$('#contactForm').submit(function(e) {\n\u00a0\u00a0\u00a0\u00a0e.preventDefault();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0var newMessageRef = messagesRef.push();\n\u00a0\u00a0\u00a0\u00a0newMessageRef.set({\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name: $('.fullname').val(),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0email: $('.email').val(),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0subject: $('.subject').val(),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message: $('.message').val()\n\u00a0\u00a0\u00a0\u00a0});\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$('.success-message').show();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$('#contactForm')[0].reset();\n});<\/code><\/pre>\n<p>Agora, tente enviar um formul\u00e1rio com valores fict\u00edcios e v\u00e1 para o banco de dados em tempo real do Firebase, voc\u00ea ver\u00e1 seus dados armazenados no banco de dados. Ser\u00e1 semelhante a abaixo.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20260-6081d485e1c3f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20260-6081d485e1c3f.png\" alt=\"Como conectar o Firebase Realtime Database ao formul\u00e1rio do seu site\" ><\/a><\/p>\n<h3>Ler dados do Firebase Realtime Database<\/h3>\n<p>Voc\u00ea aprendeu a gravar dados no Realtime Database do Firebase. Voc\u00ea tamb\u00e9m pode ler no Firebase. Ler dados do Firebase \u00e9 f\u00e1cil e requer apenas algumas linhas de c\u00f3digo JavaScript. Criamos uma cole\u00e7\u00e3o de mensagens como <code>messagesRef<\/code>. Usando esta vari\u00e1vel, voc\u00ea pode ler os dados da seguinte maneira.<\/p>\n<pre><code>messagesRef.once('value').then((snapshot) =&gt; {\n\u00a0\u00a0\u00a0\u00a0Object.keys(snapshot.val()).forEach((key) =&gt; {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0console.log(`Name: ${snapshot.val()[key].name}`);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0console.log(`Email: ${snapshot.val()[key].email}`);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0console.log(`Subject: ${snapshot.val()[key].subject}`);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0console.log(`Message: ${snapshot.val()[key].message}`);\n\u00a0\u00a0\u00a0\u00a0});\n});<\/code><\/pre>\n<p>Espero que voc\u00ea tenha aprendido como conectar o Firebase ao formul\u00e1rio do site. Por favor, compartilhe seus pensamentos e sugest\u00f5es na se\u00e7\u00e3o de coment\u00e1rios abaixo.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-fazer-backup-do-aplicativo-laravel\/\" title=\"Como fazer backup do aplicativo Laravel\">Como fazer backup do aplicativo Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/?p=27085\" title=\"Como armazenar backup do WordPress para o Dropbox automaticamente\">Como armazenar backup do WordPress para o Dropbox automaticamente<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/implante-site-estatico-no-firebase-hosting-gratuitamente\/\" title=\"Implante site est\u00e1tico no Firebase Hosting gratuitamente\">Implante site est\u00e1tico no Firebase Hosting gratuitamente<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste artigo, estudamos como conectar o formul\u00e1rio de site ao Firebase Realtime Database. Fazendo isso, nossos dados de formul\u00e1rio ser\u00e3o armazenados no Firebase<\/p>\n","protected":false},"author":1,"featured_media":20261,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[250],"tags":[848],"class_list":["post-28470","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript-9","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/28470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=28470"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/28470\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/20261"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=28470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=28470"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=28470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}