// public/js/firebase-init.js export let app, db, auth, rtdb; // Thêm export appId ở đây export let appId, userId; // export async function initializeFirebase() { console.log('Initializing Firebase...'); const firebaseConfig = { apiKey: "AIzaSyAh3e5wBNfeQX5EO9DALjEQGXH9OrH3bUA", authDomain: "qlnb-web-app.firebaseapp.com", databaseURL: "https://qlnb-web-app-default-rtdb.asia-southeast1.firebasedatabase.app", projectId: "qlnb-web-app", storageBucket: "qlnb-web-app.firebasestorage.app", messagingSenderId: "871217970406", appId: "1:871217970406:web:6b3482a4efeaa869bccf27", measurementId: "G-FSGHYLQNSJ" }; try { // Initialize Firebase app using compat namespace app = firebase.initializeApp(firebaseConfig); appId = firebaseConfig.appId; // Gán appId từ firebaseConfig // Get service instances using compat namespace db = firebase.firestore(); auth = firebase.auth(); rtdb = firebase.database(); // Check if analytics is available before getting it // Use firebase.analytics() if available, otherwise skip if (firebase.analytics) { try { const analytics = firebase.analytics(); console.log('Firebase Analytics initialized.'); } catch (e) { console.warn('Firebase Analytics failed to initialize:', e); } } else { console.warn('Firebase Analytics SDK not available.'); } console.log('Firebase initialized successfully.'); // Remove the Auth state observer - This logic belongs in userManager.js console.log('Firebase initialization promise resolved.'); return Promise.resolve(); } catch (error) { console.error('Firebase initialization error:', error); return Promise.reject(error); } } // Call initializeFirebase() early in your main script (e.g., index.js) // and await it before doing anything that depends on Firebase.