Почему мой объект рассматривается как объект ql? - PullRequest
0 голосов
/ 01 июля 2019

Когда я пытаюсь использовать Firebase.Firestore.set () с объектом, я получаю сообщение об ошибке «(FirebaseError): функция DocumentReference.set () вызвана с недопустимыми данными. Неподдерживаемое значение поля: пользовательский объект ql»

Я использую Firebase в классе React, и я попытался создать объект прямо в функции и определить его отдельно, как показано ниже:

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 голосов
/ 01 июля 2019

Скорее всего, providerData (полученный от провайдера идентификации) содержит данные типа, который Firestore не может обработать.Чтобы решить эту проблему, либо не храните данные поставщика, либо преобразуйте их в совместимый тип с помощью этого хака:

providerData: JSON.parse(JSON.stringify(authUser.providerData))
0 голосов
/ 01 июля 2019

Ваша проблема в том, что вы пытаетесь скопировать экземпляр объекта (я полагаю, это объект graphql), а firebase не поддерживает это, вам нужно использовать примитивные значения.Убедитесь, что вы копируете строки во все свойства вместо указателей на класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...