In this blog, we will show how to add a push notification functionality in react js using Firebase. Nowadays, most web applications have notification functionality to get continuous updates and user interaction.
A push/alert message will help the user to get the new updates on the app.
Firebase provides cloud messaging functionality, which helps get alert messages on the client-side.
Here are some basic steps required to implement the push notifications in ReactJS with Firebase.
If you don’t know about react first, go through the react tutorials, or you can check the best react courses.
Or
Create an app by using the create-react-app following command
npm create-react-app push-notification-demo
cd push-notification-demo
Then run the command npm start to run the app.
Now moving to the Firebase initialization in react app.
We require the Firebase library to initialize the Firebase in the created app.
Run the following command
npm install Firebase –save
Initialize Firebase in project
To initialize the Firebase lets create a file Firebase.js inside a src folder
App.js file
import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; import DeepLink from './deepLink' ReactDOM.render(, document.getElementById('root'))
After creating a Firebase.js in the app, we have to create a project inside a Firebase console
Create a project in Firebase console
To create a project in Firebase
Create a project with name – first-cloud-messaging
Now you have a Firebase project with name first-cloud-messaging
Now go to the project overview, You will get the following page:
We have a platform option in the above image click on the JavaScript platform for web Now we will get the following page.
Register the app by adding an app nickname.
After registering the app, you will get the following page.
Copy the FirebaseConfig object and add inside the Firebase.js file
Then Firebase.js file should be
Create a Firebase-message-sw.js file
Create a Firebase-message-sw.js file inside a public folder inside an app and add the following code
Add messagingSenderId which is provided by Firebase. Imports all the scripts that are needed to show the notifications when your app is running in the background.
User permission to get notifications
It is a best practice to take permission from the user before the push notification starts.
By using the react lifecycle hook componentDidMount, which is helpful to execute the function after rendering the render function in the class-based component.
In the above image, we have imported the Firebase.js file to initialize the Firebase in the app. After requesting permission, we will get a token that is printed in the console.
To get the token run the react server by command npm start
In the above image, we are getting a token. With the help of the token, we can have permission to get the notification from the Firebase.
Testing the Firebase cloud-messaging
For testing the push notification we have to go to the Firebase console.
In the Firebase console go to -> project overview page
After adding form => click on => Send test message button
Click on the Cloud Messaging -> click to => Send your first message button
You will get pop which needed the FCM registration token which we got in the client app browser console
After adding the token click on the test button to test the notification to test the react firebase push notification
Copy the token and then add into an FCM registration token
You will get the push notification on the client app
The above image showing the notification on google chrome browser on localhost:3000
Now, we have steps to implement the push notification functionality in react js web application using firebase cloud messaging. Hope my article helps you to understand the process of React firebase push notification. If you have any doubts, write your comment to discuss more.
Kumarswami Boga is a full-stack web application developer with 1.5 years of experience. He is eager to learn new technologies and passionate about his work. His area of expertise in HTML, CSS, javascript, and frontend frameworks reactjs, angularjs for backend creating rest API in Django-rest-framework.
Get the latest updates by sharing your email.
Flexible Engagement Model | Secure & Scalable Apps | First Time Right Process
Mindbowser helped us build an awesome iOS app to bring balance to people’s lives.
We had very close go live timeline and MindBowser team got us live a month before.
They were a very responsive team! Extremely easy to communicate and work with!
We’ve had very little-to-no hiccups at all—it’s been a really pleasurable experience.
Mindbowser is one of the reasons that our app is successful. These guys have been a great team.
Mindbowser was very helpful with explaining the development process and started quickly on the project.
The greatest benefit we got from Mindbowser is the expertise. Their team has developed apps in all different industries with all types of social proofs.
Mindbowser is professional, efficient and thorough.
Very committed, they create beautiful apps and are very benevolent. They have brilliant Ideas.
MindBowser was great; they listened to us a lot and helped us hone in on the actual idea of the app.” “They had put together fantastic wireframes for us.
They're very tech-savvy, yet humble.
Ayush was responsive and paired me with the best team member possible, to complete my complex vision and project. Could not be happier.
As a founder of a budding start-up, it has been a great experience working with Mindbower Inc under Ayush's leadership for our online digital platform design and development activity.
The team from Mindbowser stayed on task, asked the right questions, and completed the required tasks in a timely fashion! Strong work team!
They are focused, patient and; they are innovative. Please give them a shot if you are looking for someone to partner with, you can go along with Mindbowser.
We are a small non-profit on a budget and they were able to deliver their work at our prescribed budgets. Their team always met their objectives and I'm very happy with the end result. Thank you, Mindbowser team!!