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

问题描述

我正在使用 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'})
}

标签: javascriptfirebasevue.jsgoogle-cloud-firestorevuex

解决方案


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

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


推荐阅读