-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
64 lines (46 loc) · 2.12 KB
/
index.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
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.15.0/firebase-app.js"
import { getDatabase, onValue, push, ref, remove } from "https://www.gstatic.com/firebasejs/9.15.0/firebase-database.js"
const appSettings = {
databaseURL: "https://milkmocha-68e4d-default-rtdb.europe-west1.firebasedatabase.app/"
}
const app = initializeApp(appSettings)
const database = getDatabase(app)
const shoppingListInDB = ref(database, "shoppingList")
const inputFieldEl = document.getElementById("input-field")
const addButtonEl = document.getElementById("add-button")
const shoppingListEl = document.getElementById("shopping-list")
addButtonEl.addEventListener("click", function() {
let inputValue = inputFieldEl.value
push(shoppingListInDB, inputValue)
clearInputFieldEl()
})
onValue(shoppingListInDB, function(snapshot) {
let itemsArray = Object.entries(snapshot.val())
clearShoppingListEl()
for (let i = 0; i < itemsArray.length; i++) {
let currentItem = itemsArray[i]
let currentItemID = currentItem[0]
let currentItemValue = currentItem[1]
appendItemToShoppingListEl(currentItem)
}
})
function clearShoppingListEl() {
shoppingListEl.innerHTML = ""
}
function clearInputFieldEl() {
inputFieldEl.value = ""
}
function appendItemToShoppingListEl(item) {
let itemID = item[0]
let itemValue = item[1]
let newEl = document.createElement("li")
newEl.textContent = itemValue
// Challenge: Attach an event listener to newEl and make it so you console log the id of the item when it's pressed.
newEl.addEventListener("click", function() {
// Challenge: Make a let variable called 'exactLocationOfItemInDB' and set it equal to ref(database, something) where you substitute something with the code that will give you the exact location of the item in question.
let exactLocationOfItemInDB = ref(database, `shoppingList/${itemID}`)
// Challenge: Use the remove function to remove the item from the database
remove(exactLocationOfItemInDB)
})
shoppingListEl.append(newEl)
}