README
Installation
$ npm install x-cite-firebase-sdk
$ yarn add x-cite-firebase-sdk
then import the package into the used component
import Firebase from 'x-cite-firebase-sdk'
Configuration
doCreateUserWithEmailAndPassword(email, password) {
this.auth.createUserWithEmailAndPassword(email, password);
}
doSignInWithEmailAndPassword(email, password) { this.auth.signInWithEmailAndPassword(email, password); }
doSignInWithGoogle() { this.auth.signInWithPopup(this.googleProvider); }
doSignInWithFacebook() { this.auth.signInWithPopup(this.facebookProvider); }
doSignInWithTwitter() { this.auth.signInWithPopup(this.twitterProvider); }
doSignOut() { this.auth.signOut(); }
doPasswordReset (email) {
this.auth.sendPasswordResetEmail(email);}
doSendEmailVerification() {
this.auth.currentUser.sendEmailVerification({
url: process.env.REACT_APP_CONFIRMATION_EMAIL_REDIRECT,
});
}
doPasswordUpdate(password) {
this.auth.currentUser.updatePassword(password);
// *** Merge Auth and DB User API *** //
onAuthUserListener(next, fallback)
this.auth.onAuthStateChanged(authUser => {
if (authUser) {
this.user(authUser.uid)
.once('value')
.then(snapshot => {
const dbUser = snapshot.val();
// default empty roles
if (!dbUser.roles) {
dbUser.roles = {};
}
// merge auth and db user
authUser = {
uid: authUser,
email: authUser.email,
emailVerified: authUser.emailVerified,
providerData: authUser.providerData,
...dbUser,
};
next(authUser);
});
} else {
fallback();
}
});
}
```User API
user(uid) {
this.db.ref(`users/${uid}`);
}
users() {
this.db.ref('users');
}