-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscheme.js
80 lines (66 loc) · 1.98 KB
/
scheme.js
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
const waypoint = {
lat: "",
long: "",
// description: "",
time: "",
};
const route = {
name: "",
captain: "",
plan: [waypoint, waypoint, waypoint],
checkins: [waypoint, waypoint],
};
//app work
//read data
db.collection("routes")
.get()
.then(snapshot => {
// entire docs for the document store
// console.log(snapshot.docs)
// have to interate over documents
snapshot.docs.forEach(doc => {
// have to call data to unwrap the object
console.log(doc.data());
});
});
// write data
db.collection("routes").add({
name: "",
captain: "",
plan: [waypoint, waypoint, waypoint],
checkins: [waypoint, waypoint],
});
// deleting data
db.collection("routes").doc("id of document").delete;
// update data
// just the part of the object that needs updating
db.collection("routes").doc("id").update({
name: "updated value"
})
// you can use .set but it updates the entire document removing any fields not specified
// special query with order and where
db.collection("routes")
.where("city", "==", "manchester")
.orderBy('name')
.get()
.then(snapshot => {
// entire docs for the document store
// console.log(snapshot.docs)
// have to interate over documents
snapshot.docs.forEach(doc => {
// have to call data to unwrap the object
console.log(doc.data());
});
});
// real-time update
db.collection("routes").orderBy("city").onSnapshot(snapshot => {
let changes = snapshot.docChanges();
console.log('changes', changes)
changes.forEach(change => {
if (change.type === "added") {
//render change.doc.data()
} else if (change.type === "removed") {
//remove
}
})
})