0.1.58 • Published 2 years ago
@ngthuc/react-fui v0.1.58
React Firebase Web Auth
Install
npm i @ngthuc/react-fui
Demo usage
import React, {useEffect, useState} from 'react';
import {getAuth, signOut} from "firebase/auth";
import firebase from "firebase/compat/app";
import StyledFirebaseAuth from "@ngthuc/react-fui/StyledFirebaseAuth";
import parsePhoneNumber from "libphonenumber-js";
firebase.initializeApp({apiKey: "...", authDomain: "...", projectId: "...", ...});
const auth = getAuth();
const googleAuthProvider = new GoogleAuthProvider();
const githubAuthProvider = new GithubAuthProvider();
const phoneAuthProvider = new PhoneAuthProvider(auth);
const emailAuthProvider = new EmailAuthProvider();
const FirebaseDemo = (props) => {
const [user, setUser] = useState({});
const [isSignedIn, setIsSignedIn] = useState(false); // Local signed-in state.
// Listen to the Firebase Auth state and set the local state.
useEffect(() => {
const unregisterAuthObserver = auth.onAuthStateChanged((user) => {
setIsSignedIn(!!user);
});
return () => unregisterAuthObserver(); // Make sure we un-register Firebase observers when the component unmounts.
}, []);
if (isSignedIn) {
return (
<div>
<p>Xin chào {user?.displayName || user?.email || user?.phoneNumber || 'Unknown'}! Bạn hiện đã đăng nhập!</p>
<button onClick={() => signOut(auth)}>Đăng xuất</button>
</div>
);
}
return (
<StyledFirebaseAuth
uiConfig={{
defaultCountry: 'VN',
signInOptions: [
googleAuthProvider,
githubAuthProvider,
phoneAuthProvider,
emailAuthProvider
],
callbacks: {
signInSuccessWithAuthResult: (authResult) => {
console.log('signInSuccessWithAuthResult', authResult);
setUser(authResult.user);
},
signInFailure: (error) => {
// Handle Errors here.
const errorCode = error.code;
const errorMessage = error.message;
// The email of the user's account used.
const {phone, email} = error.customData;
console.log('SignIn fail:', {errorCode, errorMessage, phone, email});
},
},
locale: {
parsePhoneNumber
}
}}
firebaseAuth={auth}
/>
)
}
export default FirebaseDemo;
License & Credit
Publish under MIT license by ngthuc
0.1.58
2 years ago
0.1.57
2 years ago
0.1.56
2 years ago
0.1.55
2 years ago
0.1.54
2 years ago
0.1.53
2 years ago
0.1.52
2 years ago
0.1.51
2 years ago
0.1.50
2 years ago
0.1.49
2 years ago
0.1.48
2 years ago
0.1.47
2 years ago
0.1.46
2 years ago
0.1.45
2 years ago
0.1.44
2 years ago
0.1.43
2 years ago
0.1.42
2 years ago
0.1.41
2 years ago
0.1.40
2 years ago
0.1.38
2 years ago
0.1.37
2 years ago
0.1.36
2 years ago
0.1.35
2 years ago
0.1.34
2 years ago
0.1.33
2 years ago
0.1.32
2 years ago
0.1.31
2 years ago
0.1.30
2 years ago
0.1.29
2 years ago
0.1.28
2 years ago
0.1.27
2 years ago
0.1.26
2 years ago
0.1.25
2 years ago
0.1.24
2 years ago
0.1.23
2 years ago
0.1.22
2 years ago
0.1.20
2 years ago
0.1.19
2 years ago
0.1.18
2 years ago
0.1.17
2 years ago
0.1.16
2 years ago
0.1.14
2 years ago
0.1.13
2 years ago
0.1.12
2 years ago
0.1.11
2 years ago
0.1.10
2 years ago
0.1.9
2 years ago
0.1.8
2 years ago
0.1.7
2 years ago
0.1.3
2 years ago
0.1.1
2 years ago
0.1.0
2 years ago