Late to the party, but ran into a similar problem when wanting to create a dashboard available only to users on our domain (but without wanting to manage individual accounts).
Ended up using the standard google auth flow, but restricting data access via DB rules. To see if a user is authorised we attempt to access data directly after login (and before we report back to the user). If it fails on auth grounds our user is an outsider.
Firebase DB Rule:
{
"rules": {
".read": "auth.token.email_verified == true && auth.token.email.matches(/.*@ourdomain.org$/)",
".write": false
}
}
See https://firebase.google.com/docs/reference/security/database/
Note: this was definitely made easier due to our org running our mail through gsuite, however you could easily define more granular rules where this option isn't available.