<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Neev Shah</title>
    <description>The latest articles on DEV Community by Neev Shah (@doguwu123).</description>
    <link>https://dev.to/doguwu123</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F648168%2F213fe5ca-634a-44cf-a2ba-34fa89bb869b.jpg</url>
      <title>DEV Community: Neev Shah</title>
      <link>https://dev.to/doguwu123</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/doguwu123"/>
    <language>en</language>
    <item>
      <title>Google Auth Firebase</title>
      <dc:creator>Neev Shah</dc:creator>
      <pubDate>Wed, 29 Sep 2021 08:58:35 +0000</pubDate>
      <link>https://dev.to/doguwu123/google-auth-firebase-356c</link>
      <guid>https://dev.to/doguwu123/google-auth-firebase-356c</guid>
      <description>&lt;p&gt;In this blog I am going to cover some basic concepts about the Firebase Authentication with google-auth. So lets zoom in and write some code.&lt;/p&gt;

&lt;p&gt;First off all lets create a login and dashboard screen.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QYbhrzLQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8jyvegvdyke1b97a3kwf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QYbhrzLQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8jyvegvdyke1b97a3kwf.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
Here in login screen div we have a button and then when we click on that button a pop up window will open and after selecting/creating/logging in with our google account it will redirect to our dashboard and show us our profile details like profile-picture, email and username. We will display it using the innerhtml method. Now lets create a firebase project&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qhgiym19--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3h7091miv2idx8ecql8j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qhgiym19--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3h7091miv2idx8ecql8j.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n8iFsSaC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6gcl30q7wjugdn0p0x34.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n8iFsSaC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6gcl30q7wjugdn0p0x34.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
After creating it lets create a web app&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Rx5tY_oF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mlgp9gp6qalq11ejvag5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Rx5tY_oF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mlgp9gp6qalq11ejvag5.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nRdKa0Ad--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/07gaftp4xmkonrkef8ga.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nRdKa0Ad--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/07gaftp4xmkonrkef8ga.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
Give it a name and click next.&lt;br&gt;
Now lets enable Authentication and authentication with google &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bKwlzzxp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4fdho9b4eodt5vw58nng.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bKwlzzxp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4fdho9b4eodt5vw58nng.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tTiYRQpo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ixsrfogvtojnco9trw9o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tTiYRQpo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ixsrfogvtojnco9trw9o.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
Next: lets import authentication and our app&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;script src="https://www.gstatic.com/firebasejs/8.2.7/firebase-app.js"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src="https://www.gstatic.com/firebasejs/8.2.7/firebase-auth.js"&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now lets create a javascript file and paste our config. You can find your config in project settings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lOZS74qa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8w5o6mgz60zqgnul5xy8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lOZS74qa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8w5o6mgz60zqgnul5xy8.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then we will get the elements from the html file and add a event listener to render the function.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UF16gtb0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hc41tdqchwg9riiz1wv3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UF16gtb0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hc41tdqchwg9riiz1wv3.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Following: We will render the google sign in with pop up and tell it to show the user details and if there is a error just show it in the console.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NMviC0hr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jf6j8a0gnsniiw027lof.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NMviC0hr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jf6j8a0gnsniiw027lof.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
Now we will show the user details from the console to innerhtml&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UWuJ2SoP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ujjqd4oikh2wag0y7ssp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UWuJ2SoP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ujjqd4oikh2wag0y7ssp.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--b4haYnkJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hglkvandymetb43hc8be.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--b4haYnkJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hglkvandymetb43hc8be.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
In the above picture we are telling it to see for login's and if there is a login from the device then render the &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  showUserDetails  
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;function or else let the user login. &lt;br&gt;
Finally lets give some functionality to the logout button.&lt;br&gt;
 &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AKaXsogE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3cz3werw6xgdwubvie1n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AKaXsogE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3cz3werw6xgdwubvie1n.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
Here the logout button will render the LogoutUser function and tell it to log out using &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  firebase.auth().signOut()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;then after logging out just show the LoginScreen and if there is a error just display it in the console.&lt;/p&gt;

&lt;p&gt;If you like this blog consider following me on github: &lt;a href="https://github.com/nfhneevns"&gt;https://github.com/nfhneevns&lt;/a&gt; and you can find the source code: &lt;a href="https://github.com/nfhneevns/google-auth-blog"&gt;https://github.com/nfhneevns/google-auth-blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you! For reading and I will see you in the next one.&lt;/p&gt;

</description>
      <category>firebase</category>
      <category>googleauth</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Building a chat app with Firebase DB</title>
      <dc:creator>Neev Shah</dc:creator>
      <pubDate>Mon, 27 Sep 2021 12:32:54 +0000</pubDate>
      <link>https://dev.to/doguwu123/building-a-chat-app-with-firebase-db-2a0m</link>
      <guid>https://dev.to/doguwu123/building-a-chat-app-with-firebase-db-2a0m</guid>
      <description>&lt;p&gt;In this blog I am going to cover some basic stuff about the Firebase real-time database. So let's get started by creating basic HTML elements: &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--34y-INK5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i7fd5l4i5nmnkpo4oknx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--34y-INK5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i7fd5l4i5nmnkpo4oknx.png" alt="alt text"&gt;&lt;/a&gt;&lt;br&gt;
Notice we have created a input and a button and that is because for entering a message and sending it. One more thing is that we have used&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  &amp;lt;form&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;and that is because we want to show the input and the button in the same line. &lt;/p&gt;

&lt;p&gt;Next lets setup a new Firebase project and a app:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--opmZG7A---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bvo6iyx8og5dqidt40d2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--opmZG7A---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bvo6iyx8og5dqidt40d2.png" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TgspGMJX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/let7u49vxppe8vaybsg7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TgspGMJX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/let7u49vxppe8vaybsg7.png" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now lets create a new web app in the console:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4NbQnJK3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4o8jgdvngk9y3u6gjxpk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4NbQnJK3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4o8jgdvngk9y3u6gjxpk.png" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Give it a name and you can enable Firebase hosting if you want but I don't want to do it now so I will uncheck it.&lt;/p&gt;

&lt;p&gt;Then to use the Real-time database we will have create it so lets do that&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZtDyGm3p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sn2omjfw3vbfzdbm0wkp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZtDyGm3p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sn2omjfw3vbfzdbm0wkp.png" alt="alt text"&gt;&lt;/a&gt;&lt;br&gt;
after you have set up the database lets write some code&lt;br&gt;
First of all lets import our database and our app&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--v5sA0Utz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2q8fno4t22skixdhbz93.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--v5sA0Utz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2q8fno4t22skixdhbz93.png" alt="alt text"&gt;&lt;/a&gt;&lt;br&gt;
Now we will have to import our cdn in our JavaScript file and you can find that cdn in your project settings&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pUliQqrN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/436o1mt6dbsa0ox4xzq9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pUliQqrN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/436o1mt6dbsa0ox4xzq9.png" alt="alt text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Sf3HTOO0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uk36hvhmpobtd0f3gisq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Sf3HTOO0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uk36hvhmpobtd0f3gisq.png" alt="alt text"&gt;&lt;/a&gt;&lt;br&gt;
Now let's configure firebase database and you can do it by copy pasting this snippet:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  const db = firebase.database();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now to get users data we will render a prompt: &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xpHbtbY6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0v9mlm81ao6rk05xu96k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xpHbtbY6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0v9mlm81ao6rk05xu96k.png" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then we will listen for submit event on the form and call the postChat function:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  document.getElementById("message-form").addEventListener("submit", sendMessage);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Next: We will send the message to the database&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hzBc6pAb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kgp5jgic7c21kqmnu4np.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hzBc6pAb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kgp5jgic7c21kqmnu4np.png" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we will add a auto scroll to bottom functionality so that the user doesn't has to scroll down for a whole lot of time:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KCcGDZOP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/46kgktqypq8f5aa8q99l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KCcGDZOP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/46kgktqypq8f5aa8q99l.png" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now lets display the messages from our collection:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JeO9im4p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jf3w5oe5v2mtjqk9yj3a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JeO9im4p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jf3w5oe5v2mtjqk9yj3a.png" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now when you send a message it automatically updates in our database in the messages collection&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--j5BmJRx6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8un4fbqarf9oykup7jb7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j5BmJRx6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8un4fbqarf9oykup7jb7.png" alt="alt text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MxcMWx82--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/617w0sbqtma0bneev9gn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MxcMWx82--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/617w0sbqtma0bneev9gn.png" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now lets add some bootstrap to enhance the user experience&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7TxS8rJ2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/daa9v5drm7frvl788yy3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7TxS8rJ2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/daa9v5drm7frvl788yy3.png" alt="alt text"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mii7WMwC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r80fajm2deavspu9ho9w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mii7WMwC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r80fajm2deavspu9ho9w.png" alt="alt text"&gt;&lt;/a&gt;&lt;br&gt;
Yes! I love it &lt;br&gt;
You can find the whole source code here: &lt;a href="https://github.com/nfhneevns/chat-app-blog"&gt;https://github.com/nfhneevns/chat-app-blog&lt;/a&gt;&lt;br&gt;
To support me you can follow me on GitHub: &lt;a href="https://github.com/nfhneevns"&gt;https://github.com/nfhneevns&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you!&lt;/p&gt;

</description>
      <category>firebase</category>
      <category>boostrap</category>
      <category>vanillajs</category>
    </item>
  </channel>
</rss>
