首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在数据库中发布之前,Firebase检查值的数组是否存在

在数据库中发布之前,Firebase检查值的数组是否存在
EN

Stack Overflow用户
提问于 2020-09-20 20:55:11
回答 2查看 32关注 0票数 0

我目前正在构建一个使用vue.js和firebase作为后端的应用程序,并通过这样做来检查数据库中是否已经存在一个值:

代码语言:javascript
复制
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)
        }
      })

    },

如何扩展此功能以将数组的值与另一个数组进行比较,并在值尚不存在的情况下post到firebase。

我尝试使用双循环,但由于我使用的是布尔值,所以不起作用。有没有更好的方法呢?谢谢

我尝试了另一种方法,但这次console.log总是返回true

代码语言:javascript
复制
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)
        }
        
      
        
      })
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-21 03:22:36

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

代码语言:javascript
复制
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])
      }

    }
      
  })
票数 0
EN

Stack Overflow用户

发布于 2020-09-21 00:40:12

代码语言:javascript
复制
firebase.database().ref('ecologic/footprint').once('value', snapshot => {
        
        const objSnap = snapshot.val()
        let objExists

        for (let obj in footprint) {
       
        for (let key in obj) {
          if (objSnap[key] === footprint[obj]) objExists = true
          else objExists = false
        }

        if (!objExists) {
          //firebase.database().ref(`ecologic/footprint`).push(footprint[obj])
          console.log(JSON.stringify(obj))
        }
      }
      })

console.log:

代码语言:javascript
复制
[Log] Processing
[Log] Nature

我真的不明白这对你指出问题有什么帮助。谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63979200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档