ngx-firebase-auth
v1.2.6
Published
Simple lightweight Firebase Authentication Service for Angular 12+
Maintainers
Readme
NgxFirebaseAuth
Open Source Library for Angular Web Apps to integrate a simple firebase authentication service.
Supporting @angular v13.2.1
Install
npm install ngx-firebase-auth
Peer dependencies
|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 |
Features
|Feature| |
|---|:---:|
| createUserWithEmailAndPassword | :heavy_check_mark:|
| signInWithEmailAndPassword | :heavy_check_mark: |
| signOut| :heavy_check_mark: |
| sendEmailVerification| :heavy_check_mark: |
| reauthenticateWithCredential| :heavy_check_mark: |
Usage
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);
});
}Functions
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> |
Interfaces
interface AuthContext {
email: string;
password: string;
}FAQ
Error TS2344: Type 'T[K]' does not satisfy the constraint
Add the following line in your main tsconfig.json inside compilerOptions:
"skipLibcheck": true
Build by and for developers
Feel free to provide a PR | open an appropriate issue here If you like this project, support ngx-firebase-auth by starring :star: and sharing it :loudspeaker:
