当我尝试将Firebase.Firestore.set()与对象一起使用时,出现错误消息,提示“((FirebaseError):Function DocumentReference.set()调用了无效数据。不支持的字段值:自定义ql对象” < / p>
我在React类中使用Firebase,我尝试在函数中直接创建对象,并分别定义它,如下所示:
if (authUser) {
const userObj = {
name: authUser.displayName,
uid: authUser.uid,
email: authUser.email,
emailVerified: authUser.emailVerified,
providerData: authUser.providerData
}
this.db.collection("users").doc(authUser.uid).set(userObj, { merge: true })
}
答案 0 :(得分:0)
您的问题是,您正在尝试复制一个对象的实例(我想是一个graphql对象),而Firebase不支持该实例,则需要使用原始值。确保在所有属性上复制字符串,而不是复制指向类的指针。
答案 1 :(得分:0)
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="330.75" viewBox="-24 -16 48 32" xml:space="preserve">
<desc>Created with Fabric.js 2.4.3</desc>
<defs></defs>
<g id="theGroup">
<rect style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(25, 205, 255); fill-rule: nonzero; opacity: 1; transform-origin: 50px 0px; transform: translateX(0%) translateY(0px);" x="-24" y="-16" rx="0" ry="0" width="48" height="32"></rect>
</g>
</svg>
(来自身份提供者)很可能包含Firestore无法处理的类型的数据。要解决此问题,请不要存储提供程序数据,或者将其转换为与此hack兼容的类型:
providerData