【问题标题】:Firebase check if an array of values exist before posting in DBFirebase 在发布到 DB 之前检查值数组是否存在
【发布时间】: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


【解决方案1】:

通过这样做找到了一种方法:

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) {
     

      if (loadedFootp.some(item => item === footprint[obj])) {
      
      } else {
      console.log(footprint[obj])
      }

    }
      
  })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多