I decided to go with Firestore to our new project.
The goal is I don't want our server logics and database designs are locked-in by Cloud Function and Firestore, And also long-term maintainability.
While I know there will still have some degree of locked-in,
My idea is to write the logic in Cloud Functions separately as microservices and persist datasets in any other database. (This is the write model)
In the meanwhile, We will project those changes to update another bucket of Firestore which will optimize for the client app to read on it. (This is the read model)
Is this a good idea to achieve my goal?