-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.js
More file actions
139 lines (133 loc) · 4.5 KB
/
App.js
File metadata and controls
139 lines (133 loc) · 4.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
import { StatusBar } from 'expo-status-bar';
import { useState } from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { TextInput } from 'react-native';
import { addDoc,collection,doc, setDoc,getDoc,docData,getDocs,docSnap,where,query,updateDoc,deleteDoc } from "firebase/firestore";
import { db } from './components/config';
export default function App() {
const [username,setname]=useState('');
const [email,setemail]=useState('');
//submitdata
//*****************************Add data into firebase********************////
function create(){
addDoc(collection(db, "users"), {
username: username,
email: email,
}).then(()=>{
//Data Submitted Successfully
console.log('data submitted');
}
).catch((error)=>{
//the write fail
console.log(error);
}
);;
}
//************************************************************************* */
//*****************************Get Individual record********************////
function GetIndRec(){
getDoc(doc(db, "users","LA")).then(docData => {
if(docData.exists()){
console.log(docData.data()); // Display data
//for set data for fields//
setname(docData.data().username);
setemail(docData.data().email);
}else{
console.log('No such a data!!!!');
}
}).catch((error)=>{
console.log(error);
}
)
};
//************************************************************************* */
//*****************************Get All record********************////
function GetAllData(){
getDocs(collection(db, "users")).then(docSnap => {
let alldata=[];
if(!docSnap.empty){
docSnap.forEach((doc=>{
alldata.push({...doc.data(),id:doc.id});
})
)
console.log("Document Data",alldata);
}else{
console.log('No such a data!!!!');
}
}).catch((error)=>{
console.log(error);
}
)
};
//************************************************************************* */
//*****************************Using QUery VIP Function********************////
function QueryData(){
getDocs(query(collection(db, "users"),where('email','==','user@gmail.com'))).then(docSnap => {
let alldata=[];
if(!docSnap.empty){
docSnap.forEach((doc=>{
alldata.push({...doc.data(),id:doc.id});
})
)
console.log("Document Data",alldata[0].username);
}else{
console.log('No such a data!!!!');
}
}).catch((error)=>{
console.log(error);
}
)
};
//************************************************************************* */
//*****************************Update Record with ID(Hard coded ID)********************////
function UpdateData(){
updateDoc(doc(db, "users","LA"), {
username: username,
email: email,
}).then(()=>{
//Data Submitted Successfully
console.log('data Updated Successfully');
}
).catch((error)=>{
//the write fail
console.log(error);
}
);;
}
//************************************************************************* */
//*****************************Delete Data individual record********************////
function deleteData(){
deleteDoc(doc(db, "users","xJuv2HI21rpYnU1pOhE2"));
}
//************************************************************************* */
return (
<View style={styles.container}>
<Text>Firebase Crud </Text>
<TextInput value={username} onChangeText={(username)=>{setname(username)}} placeholder='Username' style={styles.textBoxes}></TextInput>
<TextInput value={email} onChangeText={(email)=>{setemail(email)}} style={styles.textBoxes}></TextInput>
<button onClick={create}>Submit Data</button>
<button onClick={GetIndRec}>Get Ind Rec</button>
<button onClick={GetAllData}>Get All Data</button>
<button onClick={QueryData}>Query Data</button>
<button onClick={UpdateData}>Update Data</button>
<button onClick={deleteData}>Delete Data</button>
<StatusBar style="auto" />
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
textBoxes:{
width:'90%',
fontSize:18,
padding:'12',
borderColor:'blue',
borderWidth:0.2,
borderRadius:10
}
});