Ошибка при тестировании Firestore онлайн с Jest: «Ошибка аутентификации: Ошибка типа: выборка не является функцией» - PullRequest
0 голосов
/ 25 мая 2019

Я пытаюсь проверить Cloud Firestore с помощью Jest, но у меня появляется следующая ошибка.

const admin = require('firebase-admin');
const serviceAccount = require("../../../config/YOUR-PROJECT-NAME-firebase-adminsdk-XXXX-XXXXXX.json");

// const myfirestore: any = new MyFireStore()

describe('MyFirestore', () =>{
  it('getDocument', async () => {

    admin.initializeApp({
      credential: admin.credential.cert(serviceAccount),
      databaseURL: "https://unittest-dfb64.firebaseio.com"
    });

    let result = false
    const db = admin.firestore();
    const collectionRef = db.collection('test')
    const docRef = collectionRef.doc('testDoc')
    const getDoc = await docRef.get()
    if (getDoc && getDoc.exists) {
      result = getDoc.data()
    }

    expect(result).toEqual('testdata')
  }, 100000)

«Ошибка аутентификации: ошибка типа: выборка не является функцией».

Я много гуглил, но не смог найти подсказки об этой ошибке. Как правильно получить доступ к данным Firestore в тесте Jest? Заранее большое спасибо за помощь.

Полный код загружен здесь.

https://github.com/goodpic/firebase-graphql-boilerplate

Я проверил и попробовал эти документы, но не смог выяснить, в чем причина этой ошибки.

https://firebase.google.com/docs/functions/unit-testing https://github.com/firebase/functions-samples/blob/master/quickstarts/uppercase/functions/test/test.online.js https://gist.github.com/starhoshi/21d1fb870d485a95c86fe93cfe1ac240

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Эта проблема была исправлена ​​в firebase-admin 8.1.0

https://github.com/firebase/firebase-admin-node/issues/512#issuecomment-503392508

0 голосов
/ 28 мая 2019

Я наконец-то нашел причину этой проблемы. Проблема была вызвана несовместимостью Jest и проекта Gaxios.

https://github.com/firebase/firebase-admin-node/issues/512#issuecomment-487218219

Как обходной путь, я мог бы решить, понизив gaxios до 1.8.3, как описано в комментарии.

"dependencies": {
    "firebase-admin": "^7.3.0",
    "gaxios": "1.8.3"
  },
  "resolutions": {
    "**/gaxios": "1.8.3"
  },

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