Fetch data from Google Firestore

This commit is contained in:
Ray 2023-10-17 09:21:08 +00:00 committed by GitHub
parent ead7f2372c
commit ffa951936e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 4 deletions

View File

@ -1,7 +1,7 @@
import { FirebaseConfig } from "./config/Config"
import { initializeApp } from "firebase/app"
import { Routes, Route } from "react-router-dom"
import { useState } from "react"
import { useState, useEffect } from "react"
import { getAuth,
createUserWithEmailAndPassword,
onAuthStateChanged,
@ -52,6 +52,15 @@ function App() {
/// application states
const [nav, setNav] = useState(navItems)
const [auth, setAuth] = useState(false)
const [data, setData] = useState([])
const [ fetching , setFetching ] = useState( false )
useEffect( () => {
if( data.length === 0 ) {
readData()
setFetching( true )
}
}, [data])
// authentication observer
@ -106,12 +115,13 @@ const signIn = (email, password) => {
// function to get data
const readData = async () => {
const querySnapshot = await getDocs( collection(FBdb, "books") )
let data = []
let listdata = []
querySnapshot.forEach( (doc) => {
let item = doc.data()
item.id = doc.id
data.push( item )
listdata.push( item )
})
setData( listdata )
}
@ -120,7 +130,7 @@ const readData = async () => {
<Header items={nav} user={auth} />
<AuthContext.Provider value={auth}>
<Routes>
<Route path="/" element={<Home greeting="Hey you're at home!" />} />
<Route path="/" element={<Home items = {data} />} />
<Route path="/about" element={<About greeting="Hey you, this is about page!" handler={saySomething} />} />
<Route path="/contact" element={<Contact greeting="Hey you, this is contact page!" />} />
<Route path="/signup" element={ <Signup handler={signUp}/> } />