GetUserByEmail and/or getUsers should return all users[FR]

Open
#2,430 7 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
node.js, typescript

Research direction

Start by locating the Admin Auth implementations of getUserByEmail and getUsers, then inspect how provider emails are currently matched. Compare their behavior with the Firebase Auth panel behavior described in the issue. Done means getUserByEmail returns the first matching user and getUsers returns every user matching the email across providers, with tests covering multiple providers and duplicate accounts.

Written by the indexing model from the issue text.

Description

needs-triage type: feature request

Is your feature request related to a problem? Yes
It is very hard to search all the users by email when you allow the user to link multiple providers or if you allow multiple accounts with the same email.

Describe the solution you'd like

  • The function "getUserByEmail" should return the first user that find where the email matches any of the emails found in its providers.
  • The function "getUsers" should return a list of all the users that match that email in any of its providers.

Describe alternatives you've considered
We've been using a property to store the email as a record with the user data in firestore. But if you have any bug in any of your versions that list will break. It even becomes harder when you allow for multiple accounts and multiple provider linking in the same account.

We've consider using auth triggers in functions to keep that list updated, but there are no triggers when a user updates their auth credentials.

Additional context
Also as the feature "fetchSignInForEmail" and others like it are being removed for security purposes this feature is going to become even more useful and needed, and the admin is the perfect place to do it.

Also this is the behavior you get when searching for an email in the firebase auth panel.

Thank you very much for the great work. If I can help in any way I'll be happy to :)
Hope you have a great day.

Dominant language
TypeScript
Stars
1.7k
Forks
419
Avg merge
3d 10h
Merged PRs (30d)
16

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from firebase/firebase-admin-node

All issues in firebase/firebase-admin-node

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.