Firebase Hosting on own server - firebase

I am looking for a solution for developing iOS and Android chat to replace our current (unreliable, maybe poorly written by previous devs) XMPP/OpenFire chat. I came across Firebase which looks good. However, I don't quite get the setup for it.
Can I host Firebase on my own server and not have to subscribe to any of Firebase's plans?

Firebase offers a few products:
the Firebase realtime database
Firebase hosting (for hosting static resources)
Firebase authentication
I think you are looking for the Firebase realtime database.
There is no way currently to host the Firebase realtime database on your own servers.

Probably to late to be of any help but an alternative is RethinkDb. It is an open source realtime database and can be installed on your own machines.
Never used it myself just researching my options like you.

One more tool to add to the list is Appwrite. It is a self-hosting solution that seems to be inspired by firebase. It has much if not all of firebase's functionality. PS: I am not in any way associated with the project, just a (happy) user.

You should check if RESTHeart fits your needs. It's mainly a REST, GraphQL, and WebSocket API on top of MongoDB, but it has many additional features

The Open Source Firebase Alternative supabase
currently it supports Postgres realtime Database, Authentication and storage only .
And it can be installed on your own server supabase self hosting docs

Related

How can i use Cloud Firestore and Firebase Auth for windows

i have a app both mobile and web in flutter so i want to create for desktop App, but base on the plugin does not support windows..
How can i use cloud Firestore and Firebase Auth in windows
Since the plugins don't support it, and there are no SDKs for Windows for either of the products, the most likely only option is to wrap the REST API that both provide. See: Auth REST API and the Firestore REST API.
It might also be worth checking out the Firestore gRPC API and its .NET client library, although I'm not sure if the latter is meant for use in client-side code or just for use in a trusted environment.
I had the same problem with desktop app in c#, there is not a lot of examples on the web. You are asking about flutter but I think my answer still should help you as the implementation is less important than concept.
You need to call your service and ask for custom_token, next with this custom_token you are calling google service and exchange custom_token for access_token. With this access_token you can call your service.
I created the the solution react.js+python+c#+firebase to have example for a future.
You can check the example on github
The firebase documentation regarding this topic is here

Using both Firebase and Amplify in one React native App

There is a big debate on the internet about Firebase vs Amplify. Get that. What I dont get is why so little to noone actually considers using both, or nobody just writes about it. To me both have clear advantages in different fields:
Firebase definitely seems to be handier when it comes to analytics and push notifications , AWS doesnt even offer ads as far I as know. And Pinpoint is quite confusing in its documentation.
AWS Cognito make more sense to anyone using AWS Services for the backend.
Firebase also offers all analytics and messaging for free regardless of the amount of data, whereas in AWS as usual you are hooked in right away with more AWS services. Firebase Storage is also more expensive than AWS once you have some significant traffic.
So I was thinking why not using Amplify SDK for Cognito and S3 whereas Firebase SDK takes care of analytics, Push Notifications and Ads. I dont see any disadvantages myself, but again - i have never built a mobile app, I am a pure backend developer. Can anyone come up with problems of this setup or just confirm it is absolutely fine?
Thanks!
ps. i am thinking of an app written in react native
I'm early into very similar research, so take this information with a grain of salt.
Regarding push notifications, Amplify's documentation for Android includes either setting your app up in Firebase or using Pinpoint. This documentation can be found here:
Amplify Push Notifications - Getting Started
This appears to be a direct tie to Firebase's push notification functionality, so I don't believe you'd get any of the other features Firebase offers with this implementation.
Regarding the other features, I believe your assessment is correct in that whichever deployment toolchain you choose to use you're subject to their analytics options.
I am also working on something similar and have always wondered why there isn’t more out there on this subject. Leveraging the best from both seems like the next step when looking to implement either.
Did you come across any issues?
I’m using Firebase SDK for Authentication, Auth, and Firestore (albeit will probably switch to S3 for storage). Amplify for everything else. NextJs frontend, no mobile.

Firebase in frontend or backend

I read firebase is referred to as backend as a service, but in its documentation it supports Nodejs. Java, Python, Golang, etc along with Web, Android, and IOS
My question is why do we need backend if firebase itself is a backend as a service.
Incase your requirements exceed what firebase offers out of the box, firebase will still give you the ability to manage your data in programmatically.
For most use cases, you won't need your own backend. But in some cases you will for example need a custom sign-in flow, or perhaps a custom dashboard to manage firebase users. In those cases firebase gives you the flexibility to do so using the firebase admin SDK, which I believe is being referred to when they list 'Nodejs. Java, Python, Golang' as supported languages.
Checkout the firebase admin documentation here to understand what you can accomplish using it. Depending on your needs, you might not need it at all.
You may be interested to interact, from some backends that you own/control (e.g. a server in your premises), with some Firebase services hosted in the cloud in the Firebase infrastructure.
This can be interesting, for example, to integrate some of your legacy applications with Firebase.
You’ll find here and here two videos from Firebase that show some real life examples.

Using Firebase authentication and Firestore in China

Using Firebase stack for chrome extensions :) However, have one BIG problem.
Users located in China cant use the app since Google is blocked there thus Firebase authentication fails ... well, one option is to use VPN but in terms of user experience, it's a big No No ... is there any better way to resolve/workaround this issue
Using mainly firebase auth (Google provider) and Firestore
Can use somehow custom tokens to resolve this?
https://firebase.google.com/docs/auth/admin/create-custom-tokens
Or external authentication service combined with firebase, in this case, need to have authenticated access to firestore as well
Create an API on HEROKU. Make all your Oauth and every call made for firebase go through the API. This API will only bridge all information between CHINA and GoogleServices (Firebase) since the great firewall blocks them.
The simplest solution may be to set up a proxy server to forward your apps requests to Firebase.

Can Firebase be used in an app supported by another Backend and Database?

I am looking to make an app that would have its Backend on another service like AWS or some other. This app would be having many features and functionalities.
But for chat feature, I am exploring options and wondering that would I be able to integrate Firebase in my app.
I have read about Firebase Functions to add more functionality at the backend and also the installation of Firebase Admin to servers.
But still I am not convinced about their capabilities and exactly what all I can do with them.
It would be great if someone who has experience with Firebase help me out figuring if going with it is the best case for me or is there something else I should look into.
So first you can't use Firebase in combination with AWS or Azure etc. Firebase is based on Google Cloud and is the interface between the mobile client (the running app on the client's smartphone) and the backend (your Firebase project).
What I use is, for example, Firebase Cloud Messaging, to simply notify one or multiple users by trigger an HTTP Request from my own web server.
I also made some apps to store the data in FireStore or in the Realtime-Database, so that I don't have to set up a whole new infrastructure. And this is basically the goal of Firebase that you can simply start with your app, without carrying about that.
So what I've heard about Firebase is that you currently cannot install Firebase on a server of your choice and you have to use Google Cloud.
Hopefully, you can do something with my answer. If you have further questions feel free to ask them.

Resources