utils#firebaseError JavaScript Examples
The following examples show how to use
utils#firebaseError.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: auth.js From react-firebase-admin with MIT License | 6 votes |
auth = (email, password) => {
return async (dispatch, getState) => {
dispatch(AUTH_SIGN_IN_INIT());
const { locale } = getState().preferences;
try {
await firebase.auth().signInWithEmailAndPassword(email, password);
} catch (error) {
const errorMessage = firebaseError(error.code, locale);
return dispatch(AUTH_SIGN_IN_FAIL({ error: errorMessage }));
}
const { emailVerified } = firebase.auth().currentUser;
if (!emailVerified) {
const errorMessage = firebaseError(
FIREBASE_RESPONSE.USER_DISABLED,
locale
);
return dispatch(AUTH_SIGN_IN_FAIL({ error: errorMessage }));
}
return dispatch(fetchUserData());
};
}
Example #2
Source File: auth.js From react-firebase-admin with MIT License | 6 votes |
setPassword = (email, password, url) => {
return async (dispatch, getState) => {
dispatch(AUTH_SET_PASSWORD_INIT());
const { locale } = getState().preferences;
try {
await firebase.auth().signInWithEmailLink(email, url);
} catch (error) {
const errorMessage = firebaseError(error.code, locale);
return dispatch(AUTH_SET_PASSWORD_FAIL({ error: errorMessage }));
}
const user = firebase.auth().currentUser;
try {
await user.updatePassword(password);
} catch (error) {
const errorMessage = firebaseError(error.code, locale);
return dispatch(AUTH_SET_PASSWORD_FAIL({ error: errorMessage }));
}
dispatch(AUTH_SET_PASSWORD_SUCCESS());
return dispatch(fetchUserData());
};
}
Example #3
Source File: auth.js From react-firebase-admin with MIT License | 6 votes |
resetPassword = (email) => {
return async (dispatch, getState) => {
dispatch(AUTH_RESET_PASSWORD_INIT());
const { locale } = getState().preferences;
try {
await firebase.auth().sendPasswordResetEmail(email);
} catch (error) {
const errorMessage = firebaseError(error.code, locale);
return dispatch(AUTH_RESET_PASSWORD_FAIL({ error: errorMessage }));
}
return dispatch(AUTH_RESET_PASSWORD_SUCCESS());
};
}
Example #4
Source File: auth.js From react-firebase-admin with MIT License | 6 votes |
changeUserPassword = (currentPassword, newPassword) => {
return async (dispatch, getState) => {
dispatch(AUTH_CHANGE_PASSWORD_INIT());
const { locale } = getState().preferences;
const user = firebase.auth().currentUser;
const { email } = user;
const credential = firebase.auth.EmailAuthProvider.credential(
email,
currentPassword
);
try {
await user.reauthenticateWithCredential(credential);
} catch (error) {
const errorMessage = firebaseError(error.code, locale);
toastr.error('', errorMessage);
return dispatch(AUTH_CHANGE_PASSWORD_FAIL({ error: errorMessage }));
}
try {
await user.updatePassword(newPassword);
} catch (error) {
const errorMessage = firebaseError(error, locale);
toastr.error('', errorMessage);
return dispatch(AUTH_CHANGE_PASSWORD_FAIL({ error: errorMessage }));
}
toastr.success('', 'Password changed successfully');
return dispatch(AUTH_CHANGE_PASSWORD_SUCCESS());
};
}
Example #5
Source File: users.js From react-firebase-admin with MIT License | 6 votes |
deleteUser = (id) => {
return async (dispatch, getState) => {
dispatch(USERS_DELETE_USER_INIT());
const { locale } = getState().preferences;
const { logoUrl } = getState()
.users.data.filter((user) => user.id === id)
.pop();
const deleteLogoTask = logoUrl ? deleteLogo(logoUrl) : null;
const deleteUserTask = deleteDocument('users', id);
try {
await Promise.all([deleteLogoTask, deleteUserTask]);
} catch (error) {
const errorMessage = firebaseError(error.code, locale);
toastr.error('', errorMessage);
return dispatch(
USERS_DELETE_USER_FAIL({
error: errorMessage,
})
);
}
toastr.success('', 'The user was deleted.');
return dispatch(USERS_DELETE_USER_SUCCESS({ id }));
};
}
Example #6
Source File: auth.js From react-firebase-admin with MIT License | 5 votes |
authWithSocialMedia = (authResult) => {
return async (dispatch, getState) => {
dispatch(AUTH_PROVIDER_INIT());
const { locale } = getState().preferences;
const { user, additionalUserInfo } = authResult;
const { isNewUser, profile } = additionalUserInfo;
const { uid, photoURL, email, displayName } = user;
const { location } = profile;
const userData = {
isAdmin: false,
email,
name: displayName,
createdAt: new Date().toString(),
logoUrl: photoURL,
location: location?.name || null,
};
let userFromDb = {};
if (isNewUser) {
try {
await createDocument('users', uid, userData);
} catch (e) {
const errorMessage = firebaseError(e.code, locale);
return dispatch(AUTH_PROVIDER_FAIL({ e: errorMessage }));
}
} else {
try {
userFromDb = await fetchDocument('users', uid);
} catch (error) {
const errorMessage = firebaseError(error.code, locale);
return dispatch(AUTH_PROVIDER_FAIL({ error: errorMessage }));
}
}
return dispatch(
AUTH_PROVIDER_SUCCESS({ id: uid, ...userData, ...userFromDb })
);
};
}
Example #7
Source File: users.js From react-firebase-admin with MIT License | 5 votes |
createUser = ({
name,
email,
location,
file,
createdAt,
isAdmin,
}) => {
return async (dispatch, getState) => {
dispatch(USERS_CREATE_USER_INIT());
const { locale } = getState().preferences;
let response;
try {
const createUserAuth = firebase
.functions()
.httpsCallable('httpsCreateUser');
response = await createUserAuth({ email, isAdmin });
} catch (error) {
const errorMessage = firebaseError(error.message, locale);
toastr.error('', errorMessage);
return dispatch(
USERS_CREATE_USER_FAIL({
error: errorMessage,
})
);
}
const { uid } = response.data;
let uploadLogoTask = null;
let logoUrl = null;
if (file) {
logoUrl = getLogoUrl(uid, file);
uploadLogoTask = uploadLogo(uid, file);
}
const userData = { name, email, location, logoUrl, createdAt, isAdmin };
const createUserDbTask = createDocument('users', uid, userData);
const actionCodeSettings = {
url: process.env.REACT_APP_LOGIN_PAGE_URL,
handleCodeInApp: true,
};
const sendSignInLinkToEmailTask = firebase
.auth()
.sendSignInLinkToEmail(email, actionCodeSettings);
try {
await Promise.all([
uploadLogoTask,
createUserDbTask,
sendSignInLinkToEmailTask,
]);
} catch (error) {
const errorMessage = firebaseError(error.code, locale);
toastr.error('', errorMessage);
return dispatch(
USERS_CREATE_USER_FAIL({
error: errorMessage,
})
);
}
toastr.success('', 'User created successfully');
return dispatch(USERS_CREATE_USER_SUCCESS({ user: response.data }));
};
}
Example #8
Source File: users.js From react-firebase-admin with MIT License | 5 votes |
modifyUser = ({
name,
location,
isAdmin,
file,
createdAt,
id,
isEditing,
isProfile,
}) => {
return async (dispatch, getState) => {
dispatch(USERS_MODIFY_USER_INIT());
const { locale } = getState().preferences;
const user = isProfile
? getState().auth.userData
: getState().users.data.find((thisUser) => thisUser.id === id);
const { logoUrl } = user;
let deleteLogoTask;
let uploadLogoTask;
let newLogoUrl = null;
if (file) {
newLogoUrl = getLogoUrl(id, file);
deleteLogoTask = logoUrl && deleteLogo(logoUrl);
uploadLogoTask = uploadLogo(id, file);
}
const userData = {
name,
location,
createdAt,
isAdmin: isAdmin || user.isAdmin,
logoUrl: logoUrl || newLogoUrl,
};
const updateUserDbTask = updateDocument('users', id, userData);
try {
await Promise.all([deleteLogoTask, uploadLogoTask, updateUserDbTask]);
} catch (error) {
const errorMessage = firebaseError(error.code, locale);
toastr.error('', errorMessage);
return dispatch(
USERS_MODIFY_USER_FAIL({
error: errorMessage,
})
);
}
const { uid } = firebase.auth().currentUser;
if (id === uid) {
dispatch(AUTH_UPDATE_USER_DATA({ ...userData, id }));
}
if (isProfile) {
toastr.success('', 'Profile updated successfully');
} else if (isEditing) {
toastr.success('', 'User updated successfully');
}
return dispatch(USERS_MODIFY_USER_SUCCESS({ user: userData, id }));
};
}
Example #9
Source File: index.jsx From react-firebase-admin with MIT License | 4 votes |
Login = () => {
const { error, isAuth, loading, locale } = useSelector(
(state) => ({
error: state.auth.error,
isAuth: !!state.auth.userData.id,
loading: state.auth.loading,
locale: state.preferences.locale,
}),
shallowEqual
);
const dispatch = useDispatch();
const { register, handleSubmit, errors, watch } = useForm({
defaultValues: {},
resolver: yupResolver(schema),
});
useEffect(() => {
document.documentElement.classList.remove(
'has-aside-left',
'has-navbar-fixed-top'
);
return () => {
document.documentElement.classList.add(
'has-aside-left',
'has-navbar-fixed-top'
);
dispatch(authCleanUp());
};
}, [dispatch]);
const isEmailLink = firebase
.auth()
.isSignInWithEmailLink(window.location.href);
const onSubmitHandler = ({ email, password }) => {
if (isEmailLink) {
dispatch(setPassword(email, password, window.location.href));
} else {
dispatch(auth(email, password));
}
};
const onSignInSuccessHandler = (authResult) => {
dispatch(authWithSocialMedia(authResult));
};
const onSignInFailHandler = (signInEror) => {
const signInErrorMessage = firebaseError(signInEror.code, locale);
toastr.error('', signInErrorMessage);
};
const isValidPassword = watch('password') && watch('password').length >= 6;
const invalidEmailMessage = useFormatMessage('Login.invalidEmail');
const safePasswordMessage = useFormatMessage('Login.safePassword');
const unsafePasswordMessage = useFormatMessage('Login.unsafePassword');
const redirect = isAuth && <Redirect to={paths.ROOT} />;
const setNewPasswordMessage = useFormatMessage('Login.setNewPassword');
const loginMessage = useFormatMessage('Login.login');
const setPasswordMessage = useFormatMessage('Login.setPassword');
const forgotPasswordMessage = useFormatMessage('Login.forgotPassword');
const invalidPasswordMessage = useFormatMessage('Login.invalidPassword');
return (
<section className="section hero is-fullheight is-error-section">
{redirect}
<div className="hero-body">
<div className="container">
<div className="columns is-centered">
<div className="column is-two-fifths">
<div className="card has-card-header-background">
<header className="card-header">
<p className="card-header-title">
<span className="icon">
<i className="mdi mdi-lock default" />
</span>
<span>
{isEmailLink ? setNewPasswordMessage : loginMessage}
</span>
</p>
</header>
<div className="card-content">
<form onSubmit={handleSubmit(onSubmitHandler)}>
<div className="field">
<p className="label">{useFormatMessage('Login.email')}</p>
<div className="control is-clearfix">
<input
className={classNames('input', {
'is-danger': errors.email,
})}
name="email"
ref={register}
/>
</div>
{errors.email && (
<ErrorMessage text={invalidEmailMessage} />
)}
</div>
<div className="field">
<p className="label">
{useFormatMessage('Login.password')}
</p>
<div className="control is-clearfix">
<input
className={classNames(
'input',
{
'is-danger': errors.password,
},
{
'is-success': isEmailLink && isValidPassword,
}
)}
type="password"
name="password"
ref={register}
/>
</div>
{errors.password ? (
<ErrorMessage
text={
isEmailLink
? unsafePasswordMessage
: invalidPasswordMessage
}
/>
) : (
isEmailLink &&
isValidPassword && (
<p className="is-success">{safePasswordMessage}</p>
)
)}
</div>
<br />
<div className="field is-grouped">
<div className="control">
<button
type="submit"
className={classNames('button', 'is-black', {
'is-loading': loading,
})}
>
{isEmailLink ? setPasswordMessage : loginMessage}
</button>
</div>
{!isEmailLink && (
<div className="control">
<Link
to={paths.RESET_PASSWORD}
className="button is-outlined"
>
{forgotPasswordMessage}
</Link>
</div>
)}
</div>
{error && (
<p
className={classNames(
'has-text-danger',
classes.errorMessage
)}
>
{error}
</p>
)}
</form>
{!isEmailLink && (
<>
<hr />
<div
className={classNames(
'field',
'is-grouped',
classes.socialButtons
)}
>
<StyledFirebaseAuth
uiConfig={uiConfig(
onSignInSuccessHandler,
onSignInFailHandler
)}
firebaseAuth={firebase.auth()}
/>
</div>
</>
)}
</div>
</div>
</div>
</div>
</div>
</div>
</section>
);
}