1import {initializeApp} from "https://www.gstatic.com/firebasejs/10.13.1/firebase-app.js"; 2import { 3 GoogleAuthProvider, 4 getAuth, 5 signInWithPopup, 6 onAuthStateChanged, 7} from "https://www.gstatic.com/firebasejs/10.13.1/firebase-auth.js"; 8 9// Firebase config and initialization 10const firebaseConfig = { 11 apiKey: "AIzaSyA5HlGyHEz4KsU1weX3S4t0lg14wp8Cp5A", 12 authDomain: "usermanager-2a455.firebaseapp.com", 13 projectId: "usermanager-2a455", 14 storageBucket: "usermanager-2a455.appspot.com", 15 messagingSenderId: "1014613697255", 16 appId: "1:1014613697255:web:b657182f36704a13467842", 17 measurementId: "G-HMF78TFYGF" 18}; 19 20// // Initialize Firebase 21const app = initializeApp(firebaseConfig); 22const auth = getAuth(); 23const provider = new GoogleAuthProvider(); 24 25const googleLogInBtn = document.getElementById('btn-google-id'); 26 27const BASE_URL_PATH = '/account' 28 29// Function to handle Google login via Popup 30const displayGoogleSignInPopup = async () => { 31 try { 32 console.log('Starting Google sign-in...'); 33 console.log('Auth object:', auth); 34 console.log('Provider object:', provider); 35 const result = await signInWithPopup(auth, provider); 36 console.log('â Sign-in successful:', result); 37 } catch (error) { 38 39 console.error('Detailed error:', { 40 code: error.code, 41 message: error.message, 42 stack: error.stack, 43 customData: error.customData 44 }); 45 46 alert('â Something went wrong ... Try again later') 47 } 48}; 49 50const updateUrlAndReloadPage = () => { 51 history.replaceState(null, null, BASE_URL_PATH) 52 location.reload() 53} 54 55eventHandler(document, TYPE_DOM_LOADED, () => { 56 if (googleLogInBtn) { 57 eventHandler(googleLogInBtn, TYPE_CLICK, displayGoogleSignInPopup) 58 } 59 // Listen for authentication state changes 60 onAuthStateChanged(auth, (user) => { 61 if (user) { 62 63 if (!localStorage.getItem('urlUpdated')) { 64 updateUrlAndReloadPage() 65 } 66 } else if (!user) { 67 localStorage.removeItem('urlUpdated') 68 } 69 }); 70})
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.