Open Source Library for Angular Web Apps to integrate a simple firebase authentication service.
Supporting @angular v13.2.1
npm install ngx-firebase-auth
Package | Version |
---|---|
@angular/core |
>=11.0.x <=13.2.x |
@angular/fire |
7.2.0 |
firebase |
9.6.6 |
rxjs |
>=6.5.x <=7.4.x |
Feature | |
---|---|
createUserWithEmailAndPassword | ✔️ |
signInWithEmailAndPassword | ✔️ |
signOut | ✔️ |
sendEmailVerification | ✔️ |
reauthenticateWithCredential | ✔️ |
To use the Service just inject it in the constructor like every other service
constructor(private authService: NgxFirebaseAuthService) {
// some code
}
To register
/*
Assume that there are two inputs in HTML (email and password) and
we call the function on button press with the input values as parameters
*/
private register(emailInput: string, passwordInput: string): void {
const context: AuthContext = {
email: emailInput,
password: passwordInput,
};
this.authService.register(context).then((user: UserCredential) => {
console.log(user);
}).catch((e) => {
console.error(e);
});
}
To log in
/*
Assume that there are two inputs in HTML (email and password) and
we call the function on button press with the input values as parameters
*/
private (emailInput: string, passwordInput: string): void {
const context: AuthContext = {
email: emailInput,
password: passwordInput,
};
this.authService.login(context).then((user: UserCredential) => {
console.log(user);
}).catch((e) => {
console.error(e);
});
}
Note:
UserCredential = firebase.auth.UserCredential
FirebaseUser = firebase.User
Type | Name | Description | Return Value |
---|---|---|---|
getter |
currentUser$ |
Get the current User Observable from AngularFireAuth | Observable<FirebaseUser> |
getter |
currentUser |
Gets the current user if authenticated | FirebaseUser or null |
getter |
currentUserId |
Gets the current user id if authenticated | string or null |
getter |
authenticated |
Checks if user is authenticated | boolean |
getter |
isVerified |
Checks if user email is verified | boolean |
function |
register(context: AuthContext) |
Register the user | Promise<UserCredential> |
function |
login(context: AuthContext) |
Login the user | Promise<UserCredential> |
function |
logout() |
Logs out the user and clear credentials. | Promise<void> |
function |
sendEmailVerification() |
Sends Email Verification e.g. after registration. | Promise<void> |
function |
sendPasswordResetEmail(email: string) |
Sends reset password mail | Promise<void> |
function |
reauthenticateUser(password: string) |
Reauthenticate an user, e.g. when updating user email | Promise<FirebaseUser> |
interface AuthContext {
email: string;
password: string;
}
Add the following line in your main tsconfig.json
inside compilerOptions
:
"skipLibcheck": true
Feel free to provide a PR | open an appropriate issue here If you like this project, support ngx-firebase-auth by starring ⭐ and sharing it 📢