【发布时间】:2020-09-21 03:22:36
【问题描述】:
我目前正在构建一个使用 vue.js 和 firebase 作为后端的应用程序,我正在检查数据库中是否已经存在一个值:
addItem ({commit}, payload) {
const footprint = payload.footprint
firebase.database().ref('ecologic/footprint').once('value', snapshot => {
const obj = snapshot.val()
let objExists
for (let key in obj) {
if (obj[key] === footprint) objExists = true
else objExists = false
}
if (!objExists) {
firebase.database().ref(`ecologic/footprint`).push(footprint)
}
})
},
如何扩展此功能以将数组的值与另一个数组进行比较,并在该值尚不存在时发布到 firebase。
我尝试使用双循环,但由于我使用的是布尔值,因此无法正常工作。有更好的方法吗?谢谢
我尝试了另一种方法,但这次 console.log 总是返回 true
firebase.database().ref('ecologic/footprint').once('value', snapshot => {
const objSnap = snapshot.val()
const loadedFootp = []
for (let key in objSnap) {
loadedFootp.push(objSnap[key])
}
for (let obj in footprint) {
const newFootp = footprint[obj]
const objExists = footprint.some((newFootp) => loadedFootp.indexOf(newFootp) !== -1);
console.log(objExists)
}
})
【问题讨论】:
-
你能不能:
console.log(JSON.stringify(obj))并将更新后的代码及其输出添加到问题中。
标签: javascript arrays firebase firebase-realtime-database