为什么我的对象被视为ql对象?

时间:2019-07-01 00:27:30

标签: javascript reactjs firebase google-cloud-firestore

当我尝试将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 })
    }

2 个答案:

答案 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