I am a CS student currently working on an iOS application for a final project. I would like to know whether it makes sense to use both Firebase and Azure as backend for my app.
Why do I use Azure in the first place?
- I need to use Azure because it has certain AI models that I would like to utilize in my app.
- There are a lot of orchestrated components and processing that is happening there and I already implemented them, so it is not like a simple API thing, so I can’t just replace it.
Why do I want to use Firebase?
- My IOS app has some social media functionalities with users and posts and feeds, so I want to use real time database and auth of Firebase that makes implementing these functionalities so much easier and faster. Moreover, Firebase is kind of tailored for mobile app devs with its simple and clear documentation.
Why don’t I just use one?
- Firebase doesn’t have the functionalities that Azure has, so I can’t just get rid of Azure and use Firebase.
- I do realize that I could just use Azure and implement all of the social media aspects of my app there and that’s what I was trying to do. It could be because I am a beginner or maybe Azure is not really all that friendly for mobile devs, but it is so tedious and confusing. The documentation is horrible for a beginner. However, I was able to use some built in azure components to create sign up functionalities using Logic apps, but it took me forever to figure out all the errors which you can’t just google because they’re not popular enough. I don’t want to build a nodeJS backend and host it on Azure because that would take too much time and I think its an overkill for some simple CRUD functionalities.
What I am planning to do
- Implement all of the CRUD/ social media functionalities of my app using Firebase.
- Have the app make requests to both Azure API endpoints and Firebase depending on the functionality.
- I don’t have much time, I need to get this done in 3 days.
- My advisors would demolish me if they find out I used two cloud platforms.
- From a Design Architecture and software engineering point of view, I know it depends on the requirements, but does this approach make sense? is it common to use many platforms for different needs? My limitation here is my lack of experience and time. Could I use these limitations to justify my approach.
- Are there are risks with this approach?
- Any suggestions?