Too Long; Didn't Read
Google's Firebase Cloud Messaging is a platform for information exchange between a mobile app and a server. It’s widely used for notification send-out, and it can be used to build a chat on its foundation. The most profitable option would be storing the data in Firebase Realtime Database (to not pay for read/write operations), storing the user data in the database is cheaper to use than Firestore. Node.js and socket.io will make you create scaling separately.