Почему магазины [i] [0] возвращают ключ Firebase при использовании Object.Entries (snapshot.val ())?Javascript

Форум по Javascript
Ответить
Anonymous
 Почему магазины [i] [0] возвращают ключ Firebase при использовании Object.Entries (snapshot.val ())?

Сообщение Anonymous »

Я использую базу данных Firebase Realtime в JavaScript для времени фриста и пытаюсь пройти через мои данные с помощью Object.Entries (snapshot.val ()). Я заметил, что когда я получаю доступ к магазинам [0], это дает мне ключ Firebase для каждого предмета. Я не уверен, почему это работает. < /P>
Вот мой код: < /p>
onValue(lists, function(snapshot) {
if (!snapshot.exists()) {
console.log("No data found");
return;
}

let shops = Object.entries(snapshot.val());

for (let i = 0; i < shops.length; i++) {
let del = shops[0]; // This gives the Firebase key
console.log(del); // Why does this work?
}
});
< /code>
Что я понимаю:
Object.entries(snapshot.val())< /code> преобразует мои данные Firebase в массив пар клавишных. «Полностью понять, как я работаю в этом случае.
Может ли кто -нибудь объяснить, как индекс цикла (i) взаимодействует с Object.Entries () и почему Shops [0] < /code> дает ключ?
Если вы хотите, это полный код и расскажите, как я могу рефактор < /p>
//ooo
const tr = document.getElementById("tr")
const trs = document.getElementById("clear")
const show = document.getElementById("show")
const text = document.getElementById("text")
const sub = document.getElementById("sub")
// Import the functions you need from the SDKs you need
import { initializeApp } from "https://www.gstatic.com/firebasejs/11.3 ... ase-app.js";
import { getDatabase,ref,push,onValue,remove } from "https://www.gstatic.com/firebasejs/11.3 ... atabase.js";
// https://firebase.google.com/docs/web/se ... -libraries

// Your web app's Firebase configuration
const firebaseConfig = {
apiKey: "AIzaSyC9ebhCO9FdQrF2GCnE0vTwYrmik4rvaT8",
authDomain: "shop-1847a.firebaseapp.com",
databaseURL: "https://shop-1847a-default-rtdb.asia-so ... tabase.app",
projectId: "shop-1847a",
storageBucket: "shop-1847a.firebasestorage.app",
messagingSenderId: "965005392074",
appId: "1:965005392074:web:63c1d5058bfdd25ff99c33"
}
const app = initializeApp(firebaseConfig);
const idk = getDatabase(app)
const lists = ref(idk,"shop")
console.log(idk)
function comes(){
let value = text.value
push(lists,value )
}
addEventListener("load",function(snapshot){
if(!snapshot){
console.log("not found")
}
else{
onValue(lists,function(snapshot){
show.innerHTML=''
let shop = Object.values(snapshot.val())
let shops = Object.entries(snapshot.val())
for(let i =0; i < shop.length;i++){
console.log(shop)
console.log(shops)
const ba = document.createElement('label');
const va = document.createElement('button');
const b = document.createElement('br')
va.textContent=shop
va.id = "te"
va.addEventListener("click",function(){
let del = shops[0]
console.log(del)
let delp = ref(idk,`shop/${del}`)
remove(delp)
})
ba.htmlFor="tr"
va.textContent=shop
show.appendChild(va);
show.appendChild(b)
show.appendChild(ba)

}
})
}
})
sub.addEventListener("click",function(){
comes()
onValue(lists,function(snapshot){
show.innerHTML=''
let shops = Object.entries(snapshot.val())
let shop = Object.values(snapshot.val())
for(let i =0; i < shop.length;i++){
console.log(shop)
const ba = document.createElement('label');
const va = document.createElement('button');
const b = document.createElement('br')
va.id = "tr"
va.addEventListener("click",function(){
let del = shops[0]
let delp = ref(idk,`shop/${del}`)
remove(delp)
})
ba.htmlFor="tr"
va.textContent=shop[i]
show.appendChild(ba)
show.appendChild(va);
show.appendChild(b)
}
})
})



Подробнее здесь: https://stackoverflow.com/questions/794 ... napshot-va
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»