If I remember right, Firebase’s main feature is that it seamlessly syncs value changes from the backend to the frontend, right? If you are interested to somehow replicate this behaviour with Phoenix you might want to read on GraphQL subscriptions as well as GraphQL mutations with the Absinth library for your Phoenix backend. On the frontend you would pair this with a library like Apollo Client.
But I would also like to encourage you to consider simpler solutions when you just need to get things done. Besides existence of well engineered solutions like the Firebase API and GraphQL APIs, you will get a long way with a simple JSON REST API on your Phoenix backend. Pairing this on your React / ReactNative frontend with a simple data loading library like SWR you get a really simple integration between your frontend and the backend with features like: fast and responsive UI, optimistic updates, local data caching with transparent refetching, http caching,…
It is great that you studying technologies like Web Sockets, Phoenix Channels,… that are usually involved when building rich realtime user experiences. But you might be surprised how something simpler like SWR data fetching and a REST API can produce a great user experience also with lot less complexity.






















