Chat Applications with Firebase Cloud Messaging
A real-time chat application with Next.js using Firebase Cloud Messaging
View the Site | GitHub
We can successfully build a real-time chat application with Next.js using Socket.IO. The real-time communication however was found not to function well once the package is deployed to Vercel, which is a serverless platform. It is suggested by Vercel two main approaches to applying a real-time model to stateless serverless functions.
- Serverless Functions have maximum execution limits and should respond as quickly as possible. They should not subscribe to data events. Instead, we need a client that subscribes to data events (such as Alby, Pusher, etc.) and a serverless function that publishes new data.
- Rather than pushing data, we can fetch real-time data on-demand. For example, the Vercel dashboard delivers realtime updates using SWR.
In this demonstration, we build a real-time chat application with Firebase Cloud Messaging. The Firebase Cloud Messaging(FCM) JavaScript API lets you receive notification messages in web apps running in browsers that support the Push API. This includes the browser versions listed in this support matrix and Chrome extensions via the Push API.