I am a Realm developer, so let me chime in with my two cents. You could give each customer a separate Realm application, so effectively each customer would have a separate MongoDB Atlas attached to that application. This does not mean that you need a separate mobile app for each customer, rather each customer simply needs a separate MongoDB Realm app id - that’s it. You would deploy one app for all your customers with separate realm apps for each one. Then comes the tricky part, so you would need the same universe of users for all these apps. The solution there is to go with a JWT authentication system for Realm - that keeps around one set users for all these apps. This is totally doable within the MongoDB Realm system. The JWT authentication system would keep around the customer’s realm app id and return it as part of the metadata. Upon signing in the customer would then open that realm app and use it to sync with. Each customer would be totally isolated from the other customers. Lastly each customer could even maintain administrative control over their Realm app and matching Atlas Cluster.
I would even go so far as to say that this is trivial to the most casual of observers. By the way, good luck doing this in Firebase - talk about the great monolithic system from the megalithic. Disclosure, I was a Firebase developer for three years.