-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
113 lines (94 loc) · 3.75 KB
/
index.html
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Firestore CRUD</title>
</head>
<body>
<h1>Firestore CRUD Operations</h1>
<h2>Add or Update Object</h2>
<textarea id="jsonInput" rows="5" cols="50" placeholder='{"obj_id":"xy234", "name":"joe"}'></textarea><br>
<button onclick="addObject()">Submit</button>
<h2>Fetch Object</h2>
<input type="text" id="fetchObjId" placeholder="Enter obj_id"><br>
<button onclick="getObject()">Fetch</button>
<pre id="fetchResult"></pre>
<h2>Delete Object</h2>
<input type="text" id="deleteObjId" placeholder="Enter obj_id"><br>
<button onclick="deleteObject()">Delete</button>
<h2>Fetch All Objects</h2>
<button onclick="getAllObjects()">Fetch All</button>
<pre id="allObjectsResult"></pre>
<script>
const addObject = async () => {
try {
const jsonInput = document.getElementById('jsonInput').value;
console.log('JSON Input:', jsonInput);
// Validate and parse JSON input
let data;
try {
data = JSON.parse(jsonInput);
} catch (parseError) {
throw new Error(`Invalid JSON: ${parseError.message}`);
}
console.log('Parsed Data:', data);
const response = await fetch('https://us-central1-we-app-45088.cloudfunctions.net/addObject', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(await response.text());
} catch (error) {
console.error('Error adding object:', error);
alert(`Failed to add object: ${error.message}. See console for details.`);
}
};
const getObject = async () => {
try {
const objId = document.getElementById('fetchObjId').value;
const response = await fetch(`https://us-central1-we-app-45088.cloudfunctions.net/getObject?obj_id=${objId}`);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
document.getElementById('fetchResult').textContent = JSON.stringify(data, null, 2);
} catch (error) {
console.error('Error fetching object:', error);
alert(`Failed to fetch object: ${error.message}. See console for details.`);
}
};
const deleteObject = async () => {
try {
const objId = document.getElementById('deleteObjId').value;
const response = await fetch(`https://us-central1-we-app-45088.cloudfunctions.net/deleteObject?obj_id=${objId}`, {
method: 'DELETE'
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(await response.text());
} catch (error) {
console.error('Error deleting object:', error);
alert(`Failed to delete object: ${error.message}. See console for details.`);
}
};
const getAllObjects = async () => {
try {
const response = await fetch('https://us-central1-we-app-45088.cloudfunctions.net/getAllObjects');
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
document.getElementById('allObjectsResult').textContent = JSON.stringify(data, null, 2);
} catch (error) {
console.error('Error fetching all objects:', error);
alert(`Failed to fetch all objects: ${error.message}. See console for details.`);
}
};
</script>
</body>
</html>