未捕获的 FirebaseError:使用无效数据调用的函数 DocumentReference.set()。不支持的字段值:未定义
Posted
技术标签:
【中文标题】未捕获的 FirebaseError:使用无效数据调用的函数 DocumentReference.set()。不支持的字段值:未定义【英文标题】:Uncaught FirebaseError: Function DocumentReference.set() called with invalid data. Unsupported field value: undefined 【发布时间】: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')
【问题讨论】:
【参考方案1】:该错误消息表明您尝试写入文档的字段之一是 javascript 中的 undefined
。通过使用 console.log 或使用调试器检查您传递的值以确定哪个未定义,然后更改您的代码以传递其他内容,或完全省略该字段。
还要记住,错误消息引用了对DocumentReference.set()
的调用,但您显示的代码是调用DocumentReference.add()
,因此错误可能位于不同的位置。
【讨论】:
请检查我的代码。如果我删除这个“购物车:this.$store.getters.cart”。然后一切正常。此错误仅在我添加购物车时出现。 您检查过undefined
的值吗?这就是错误消息告诉您的错误。
请查看截图prnt.sc/olocds。这是第一次完美上传的值。但是当我尝试再次添加另一个值时。那剂量的工作。我必须刷新页面才能添加另一个值。
该屏幕截图未显示整个对象。它里面的一些嵌套值是未定义的吗?不得为 Firestore 添加任何未定义值。
这还不是全部。当您看到“...”和更多披露箭头时,就会有更多属性。以上是关于未捕获的 FirebaseError:使用无效数据调用的函数 DocumentReference.set()。不支持的字段值:未定义的主要内容,如果未能解决你的问题,请参考以下文章
FirebaseError:使用无效数据调用函数 DocumentReference.set()。不支持的字段值:未定义(在字段名称中找到)
FirebaseError:使用无效数据调用函数 Query.where()。不支持的字段值:在进行 Karma 测试时未定义
任何人都知道为啥我会收到“快照侦听器中未捕获的错误:FirebaseError:缺少权限或权限不足”吗?
如何使用 Cordova 将动态数据从表单传递到 Firestore?