20

We're using Custom Claims in Firebase Auth to manage access in Firebase and allow custom UI experience.

We're now working on the User Admin part and we can't find a way to retrieve users by the custom claims.

For example, a user belongs to an organisation and have different access level - admin or user. We need to allow the organisation's admin to see all their organisation's users.

We'd like to avoid using a separate database to manage organisation users to not double up the data.

Is it possible? Can we retrieve all Auth users while filtering them by specific Custom Claim?

Thanks!

xims
  • 1,570
  • 17
  • 22
  • How did you solve this? Did you save that information in your database and kept it all in sync with your user's customClaims ? Like, every time you set `admin: true` to one of your users, you would go and save his `userId` under an `admin` node/collection in your database? Something like that? Or did you think of something better? Thanks. – cbdeveloper Feb 27 '19 at 17:57
  • 2
    For now, we just load the entire users' list and filter it by the required claims. But as the list will grow, we'll probably add a doubling DB table. – xims Feb 27 '19 at 22:30

1 Answers1

17

There is no built-in API to get a list of all users that have a specific claim.

There is an API to get a list of all users in the Admin SDK. So you could use that and then filter the users that have the claim you're looking for.

But performance of this will not be spectacular. So if listing all users with a specific claim is a common use-case for your app, you'll want to reconsider your concern about using an additional place to store the data. Duplicating data to achieve (well performing) use-cases is quite common in NoSQL.

Frank van Puffelen
  • 565,676
  • 79
  • 828
  • 807