javascript - 使用 Jest 在线测试 Firestore 时出错:“Auth error:TypeError: fetch is not a function”
问题描述
我正在尝试使用 Jest 测试 Cloud Firestore,但出现以下错误。
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)
“身份验证错误:TypeError:获取不是函数”。
我用谷歌搜索了很多,但找不到有关此错误的任何提示。在 Jest 测试中访问 Firestore 数据的正确方法是什么?非常感谢您提前提供的帮助。
完整的代码在这里上传。
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
解决方案
我终于找到了这个问题的根源。该问题是由 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"
},
推荐阅读
- javascript - 使用 JavaScript Reg 为 Angular5 应用程序验证英国邮政编码
- c# - 将 xml 反序列化为对象返回 null
- vba - 如何将包含特定字符串的工作表名称添加到用户表单组合框
- c - 读取位并将它们放入整数 [C]
- python - 当我尝试添加两列时,为什么熊猫会给出“0.66-0.36”?
- java - 类在 jar 中时出现 ClassNotFoundException
- java - 如何转换列表
表达 诠释Java? - c# - 文档关闭时调用 itext7 end_page 事件
- loops - 复制 EDL 的部分内容,计算持续时间但循环失败
- postgresql - Postgresql 将字符串值解析为整数