diff --git a/public/index.html b/public/index.html index 27192ef..4ab5ca6 100755 --- a/public/index.html +++ b/public/index.html @@ -4,6 +4,7 @@ + ( } /> } /> } /> + } /> } /> + + Add/Update User + + { + userData.FirstName = e.target.value; + setuserData({ ...userData }); + }} + required + min='2' + /> + + + { + userData.LastName = e.target.value; + setuserData({ ...userData }); + }} + required + min="2" + /> + + + { + e.preventDefault(); + AddUser(); + }} + > + Add User + + { + e.preventDefault(); + editRow(); + }} + > + Update User + + + + {loading ? <>loading...> : null} + User Detail + + + + + sno + First + Last + Handle + + + + {fetchdata?.map((row, id) => { + return ( + + {id + 1} + {row.FirstName} + {row.LastName} + + { + setuserData({ + FirstName: row.FirstName, + LastName: row.LastName, + id: row.id, + }); + }} + > + Edit + + deleteRow(row.id)} + > + Delete + + + + ); + })} + + + + + ); +} diff --git a/src/firebase/Firebasecurd.js b/src/firebase/Firebasecurd.js new file mode 100644 index 0000000..9c16cf5 --- /dev/null +++ b/src/firebase/Firebasecurd.js @@ -0,0 +1,91 @@ +import React, { useState, useEffect } from 'react'; +import Curdui from './Curdui'; +import { v4 as uuid } from 'uuid'; +import firebase from 'firebase/app'; + +export default function Firebasecrud() { + const [fetchdata, setfetchdata] = useState([]); + const [loading, setloading] = useState(false); + const [ref, setref] = useState(null); + const [userData, setuserData] = useState({ + id: '', + FirstName: '', + LastName: '' + }); + + const delay = async()=>{ + setTimeout (() => { + if (firebase.app.length){ + setref(firebase.app().firestore().collection('user')); + getUser(); + } + }); + } + useEffect(() => { + delay() + }, []); + + const AddUser = () => { + console.log('add user'); + userData.id = uuid(); + console.log(userData); + ref + .doc(userData.id) + .set(userData) + .then(() => { + getUser(); + }) + .catch(err => console.log(err)); + }; + + const getUser = () => { + setloading(true); + firebase.app().firestore().collection('user') + .get().then(item => { + const items = item.docs.map(doc => doc.data()); + setfetchdata(items); + setloading(false); + }); + }; + + const deleteRow = id => { + if (window.confirm(' Are you sure you want to delete')) { + ref + .doc(id) + .delete() + .then(() => { + getUser(); + }) + .catch(err => console.log(err)); + } + }; + const editRow = () => { + const updateData = { + id: userData.id, + FirstName: userData.FirstName, + LastName: userData.LastName + }; + ref + .doc(userData.id) + .update(updateData) + .then(() => { + getUser(); + }) + .catch(err => console.log(err)); + }; + + const props = { + userData, + setuserData, + fetchdata, + loading, + AddUser, + editRow, + deleteRow + }; + return ( + + + + ); +} diff --git a/src/services/authService.js b/src/services/authService.js index 1bc9d76..e9d49f1 100755 --- a/src/services/authService.js +++ b/src/services/authService.js @@ -13,7 +13,6 @@ class AuthService { messagingSenderId: '58409560329', appId: '1:58409560329:web:60ffc3c128d3b155a18bd8', measurementId: 'G-49RJ8QM95E' - // ... }; // Configure FirebaseUI. uiConfig = {