I’m working on an Android app and want to build a custom backend with a database and Firebase authentication. My app will be like a cooking application that stores recipe data. Here’s what the data structure might look like:
{
"title": "Chocolate Cake",
"components": [
{
"item": "Flour",
"quantity": 200,
"measurement": "ml"
}
]
}
I need full text search functionality to find recipes by their titles. I know Kotlin well and have good SQL knowledge.
My planned technology stack:
- Ktor for the backend framework
- Exposed as the ORM layer
- MySQL for the database
Cloud infrastructure:
- Google Cloud API Gateway
- Google Cloud Run for hosting
- Google Cloud SQL with MySQL
I’m experienced with Android development but new to backend work, so I don’t want to build authentication from scratch. Since my app already uses Firebase Auth, I’m planning to use OpenAPI 2.0 security in API Gateway to protect against unauthorized users. I also want to add Firebase App Check with JWT authentication in API Gateway to prevent unauthorized client access.
Does this approach make sense? Am I overlooking anything important?