我正在尝试比较Firebase / Firestore数据库中的值,并且我根据值是否为true来更改div边框样式。 For循环每次都经过,但仅保留最后一个。所以我猜它是在循环中重写的,但是我不知道怎么做?
// HANDLES THE FRONTEND TOGGLE/COLOR CHANGE OF SKILLS ON THE FRONTEND
for (var i = 0; i < skills.length; i++) {
var toggledSkills = skills[i].id;
console.log(toggledSkills);
var query = db.collection('users').where(toggledSkills, "==", true);
query.get().then(function(querySnapshot) {
if (querySnapshot.empty) {
// IF THE SKILL IS NOT LEARNED, PLAIN STYLING
document.getElementById(toggledSkills).parentNode.style.border = "2px solid purple";
} else {
// IF THE SKILL IS TRUE/ALREADY LEARNED, COOL STYLING
document.getElementById(toggledSkills).parentNode.style.border = "2px solid green";
}
});
}
答案 0 :(得分:1)
如果要获得多个元素,则应使用forEach浏览所有列表。
类似这样的东西:
db.collection("cities").where("capital", "==", true)
.get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
// doc.data() is never undefined for query doc snapshots
console.log(doc.id, " => ", doc.data());
});
})
.catch(function(error) {
console.log("Error getting documents: ", error);
});
您可以在此处找到更多信息:https://firebase.google.com/docs/firestore/query-data/get-data