|
| 1 | +"use client"; |
| 2 | + |
| 3 | +import { useEffect, useState } from "react"; |
| 4 | +import { getDepartments } from "@/lib/firebase/firestore"; |
| 5 | + |
| 6 | +export default function FirebaseTest() { |
| 7 | + const [status, setStatus] = useState("Testing..."); |
| 8 | + const [departments, setDepartments] = useState<any[]>([]); |
| 9 | + const [error, setError] = useState<string | null>(null); |
| 10 | + |
| 11 | + useEffect(() => { |
| 12 | + testFirebase(); |
| 13 | + }, []); |
| 14 | + |
| 15 | + async function testFirebase() { |
| 16 | + try { |
| 17 | + console.log("π₯ Testing Firebase connection..."); |
| 18 | + const data = await getDepartments(); |
| 19 | + console.log("β
Firebase connected! Departments:", data); |
| 20 | + setDepartments(data); |
| 21 | + setStatus(data.length > 0 ? "β
Connected - Data found!" : "β οΈ Connected - No data"); |
| 22 | + } catch (err: any) { |
| 23 | + console.error("β Firebase error:", err); |
| 24 | + setError(err.message); |
| 25 | + setStatus("β Connection failed"); |
| 26 | + } |
| 27 | + } |
| 28 | + |
| 29 | + return ( |
| 30 | + <div style={{ padding: "2rem", maxWidth: "600px", margin: "0 auto" }}> |
| 31 | + <h1>Firebase Connection Test</h1> |
| 32 | + <div style={{ |
| 33 | + padding: "1rem", |
| 34 | + background: status.includes("β
") ? "#d1fae5" : status.includes("β οΈ") ? "#fef3c7" : "#fee2e2", |
| 35 | + borderRadius: "8px", |
| 36 | + marginBottom: "1rem" |
| 37 | + }}> |
| 38 | + <strong>Status:</strong> {status} |
| 39 | + </div> |
| 40 | + |
| 41 | + {error && ( |
| 42 | + <div style={{ padding: "1rem", background: "#fee2e2", borderRadius: "8px", marginBottom: "1rem" }}> |
| 43 | + <strong>Error:</strong> {error} |
| 44 | + </div> |
| 45 | + )} |
| 46 | + |
| 47 | + <div> |
| 48 | + <strong>Departments ({departments.length}):</strong> |
| 49 | + {departments.length > 0 ? ( |
| 50 | + <ul> |
| 51 | + {departments.map(d => ( |
| 52 | + <li key={d.id}>{d.name} (ID: {d.id})</li> |
| 53 | + ))} |
| 54 | + </ul> |
| 55 | + ) : ( |
| 56 | + <p>No departments found. Please create some in the management page.</p> |
| 57 | + )} |
| 58 | + </div> |
| 59 | + |
| 60 | + <div style={{ marginTop: "2rem", padding: "1rem", background: "#f3f4f6", borderRadius: "8px" }}> |
| 61 | + <h3>Next Steps:</h3> |
| 62 | + <ol> |
| 63 | + <li>If status is "Connected - No data": Go to <a href="/dashboard/manage">/dashboard/manage</a> to create departments</li> |
| 64 | + <li>If status is "Connection failed": Check Firebase configuration in .env.local</li> |
| 65 | + <li>Check browser console for detailed logs</li> |
| 66 | + </ol> |
| 67 | + </div> |
| 68 | + </div> |
| 69 | + ); |
| 70 | +} |
0 commit comments