Я пытаюсь проверить 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
Эта проблема была исправлена в firebase-admin 8.1.0
https://github.com/firebase/firebase-admin-node/issues/512#issuecomment-503392508
Я наконец-то нашел причину этой проблемы. Проблема была вызвана несовместимостью 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" },