-
Notifications
You must be signed in to change notification settings - Fork 184
Open
Description
Current Behaviour
The underlying Firebase Auth errors thrown by the firebase package are silenced and a generic error is throws. Example:
import { useLogin } from 'react-admin'
const login = useLogin()
await login({ username: 'invalid', password: 'credentials' }) the error thrown by the login method is a generic js-Error with the message Login error: invalid credentials. The original error by the Firebase Sdk is silenced.
See:
react-admin-firebase/src/providers/AuthProvider.ts
Lines 26 to 44 in e3b1c01
| public async HandleAuthLogin(params: { username: string; password: string }) { | |
| const { username, password } = params; | |
| if (username && password) { | |
| try { | |
| const user = await this.fireWrapper.authSigninEmailPassword( | |
| username, | |
| password | |
| ); | |
| log('HandleAuthLogin: user sucessfully logged in', { user }); | |
| return user; | |
| } catch (e) { | |
| log('HandleAuthLogin: invalid credentials', { params }); | |
| throw new Error('Login error: invalid credentials'); | |
| } | |
| } else { | |
| return this.getUserLogin(); | |
| } | |
| } |
Expected Behaviour
The underlying Firebase error should be catchable to be able to make more informed decisions about the error. E.g. the error could be a auth/user-not-found as the user may have been deleted.
I propose the just re-throw the original Firebase error or at least offer a way to access it (e.g. using verror).
Metadata
Metadata
Assignees
Labels
No labels