【问题标题】:Uncaught FirebaseError: Function DocumentReference.set() called with invalid data. Unsupported field value: undefined未捕获的 FirebaseError:使用无效数据调用的函数 DocumentReference.set()。不支持的字段值:未定义
【发布时间】:2019-12-07 04:31:30
【问题描述】:

我正在使用 Vue 和 Firebase 创建电子商务。尝试从当前登录的用户中添加一些购物车信息。奇怪的是信息在第一时间完美保存。当我试图再次添加一些。该剂量有效并显示此错误。

未捕获的 FirebaseError:使用无效数据调用函数 DocumentReference.set()。不支持的字段值:未定义

所以我必须刷新那个页面。然后它再次工作。我不明白问题出在哪里。

注意:如果我尝试添加任何其他值而不是购物车。那么它工作正常。

checkoutLoggedInUser(){
  var db = firebase.firestore();           
  var user = firebase.auth().currentUser;

  db.collection("orders").add({
     user_id:user.uid,
     cart:this.$store.getters.cart                    
  })

  this.$store.commit('emptyCart')                
  this.$router.push({ name: 'Home'})
}

【问题讨论】:

    标签: javascript firebase vue.js google-cloud-firestore vuex


    【解决方案1】:

    该错误消息表明您尝试写入文档的字段之一是 JavaScript 中的 undefined。通过使用 console.log 或使用调试器检查您传递的值以确定哪个未定义,然后更改您的代码以传递其他内容,或完全省略该字段。

    还要记住,错误消息引用了对DocumentReference.set() 的调用,但您显示的代码是调用DocumentReference.add(),因此错误可能位于不同的位置。

    【讨论】:

    • 请检查我的代码。如果我删除这个“购物车:this.$store.getters.cart”。然后一切正常。此错误仅在我添加购物车时出现。
    • 您检查过undefined 的值吗?这就是错误消息告诉您的错误。
    • 请查看截图prnt.sc/olocds。这是第一次完美上传的值。但是当我尝试再次添加另一个值时。那剂量的工作。我必须刷新页面才能添加另一个值。
    • 该屏幕截图未显示整个对象。它里面的一些嵌套值是未定义的吗?不得为 Firestore 添加任何未定义值。
    • 这还不是全部。当您看到“...”和更多披露箭头时,就会有更多属性。
    猜你喜欢
    • 2020-04-24
    • 2019-03-08
    • 2021-09-26
    • 2021-12-26
    • 2020-06-13
    • 1970-01-01
    • 2021-10-26
    • 2021-10-05
    相关资源
    最近更新 更多