Using Firebase For Projects

Hi guys,

I have been learning web dev for almost 2 years now I feel I have a good grasp of HTML, CSS, JS, React and NextJS.

I’ve found it slower than most due to family and existing work commitments.

I did some freelance work to build up experience which has been really beneficial but I do feel I’d much rather have a career than continue freelancing.

I have studied some backend with node and mongodb previously and am capable of working in this way but when doing freelance would use stuff like Firebase for authentication and db management.

So now I’m back on the mindset as working as a developer I am building up a portfolio but wondered if employers would prefer or expect all backend code to be written by me or if services like Firebase were acceptable as most companies are likely to use other libraries and frameworks I’d imagine.

Appreciate any and all advice!

The one aspect of Firebase that worries people is primarily the “platform lock-in”.

For example if you use Firebase for your data you are stuck using Firebase in all aspects of how your data is managed, accessed and paid for. This could mean you’d hit walls and have large issues down the lines in relation to cost/performance/optimizations or just plan platform limitations (plain text search anyone?)

Because of that Firebase has been said to be best for 2 types of builds:

  1. builds that lean into Firebase and make it a core part of their app.
  2. startups that want to go going fast

Every other sort of build usually shouldn’t be done on Firebase, at least for web.

That said, you don’t have to use every part of Firebase. For example using Firebase’s auth is sensible if you don’t want to manage passwords. To the point Google builds on-top of Firebase auth with their Identity service: Identity Platform 与 Firebase 身份验证之间的区别  |  Identity Platform 文档  |  Google Cloud

I personally would use Firebase’s auth, or a similar competator (like Auth0) to manage authentication, but build everything else yourself.

Nextjs can handle your back-end/front-end as its a hybrid framework. You could host on a variety of platforms with it from self-host, vercel, or a static serve web-page. The back-end can use an auth service (above), and or a database like monodb (free tier) or SQL based.

Finally I think the main goal is to just be flexible and open to trying new things. Firebase represents the opposite of that as its an all-in-one platform that makes most decisions for you. Using something like Nextjs already means you can end up using more options depending on how you use it. Pick a database, and maybe deploy to your own self-host environment and you’ll standout.

Good luck, keep learning, keep building :+1:

1 Like

Thanks. Auth is such a time consuming and complicated thing so would be much easier to use a service. I found Auth0 good but hard to customise if you want it embedded on your own pages. Prob can do it but found little documentation. Heard good things about Superbase which I believe doesn’t lock you in so much.

I’m not sure about the auth standpoint how superbase compares to Firebase. I do know superbase isn’t as feature rich as Firebase in general, but as its open-source the “cost factor” isn’t as much of an issue since you can self host it.

Another option that comes to mind is using pocketbase, which is one file making it useful if your self-hosting.

But I’d consider these sort of options “more advanced” than just getting a core full-stack going with a database and some kind of auth.

1 Like

I’ve dug back into backend and building my enterprise project using NextJS API routes to develop a backend with a mongoDB/mongoose DB.

Having to revisit a lot of practices but forgot how much I enjoyed backend.

Thanks for the advice.

1 Like

Yes IMO keep simple with mongoose. About Auth, just use a simple JWT. It will be faster to learn and you will get basic knowledge.

Afterward you can test a bit firebase, amplify or other… Anyway, companies that have significant traffic usually do not use these tech, as it becomes much more expensive.

1 Like