【发布时间】:2021-07-01 23:54:54
【问题描述】:
我正在使用
- 节点 14
- firebase 功能测试:0.2.3
- firebase 管理员:9.6.0
- firebase 功能:3.13.2
- firebase 工具:9.8.0
所以我想使用 Firebase 云功能对我的 Firestore 触发功能执行单元测试,我阅读了来自 the documentation in here 的步骤。
我想使用Firebase Emulator 执行单元测试。所以我假设我会在离线模式下初始化 SDK。 the documentation 说
如果您想编写完全离线的测试,您可以 不带任何参数初始化SDK:
所以我这样初始化它
import * as firebase from "firebase-functions-test";
const test = firebase();
const wrapped = test.wrap(myFunctions.onCreate);
// rest of my test code
但是当我运行测试时,我有这个错误:
错误:无法加载默认凭据。浏览至 https://cloud.google.com/docs/authentication/getting-started 了解更多 信息。
所以即使我将使用 Firebase 模拟器(离线),我似乎也需要提供凭据,如果使用在线模式,这就是步骤,就像 documentation in here 中解释的那样
所以我像这样初始化 SDK
import * as firebase from "firebase-functions-test";
const test = firebase({
databaseURL: "https://xxx-b843e.firebaseio.com",
projectId: "xxx-b843e",
}, "../../../service-account.json");
const wrapped = test.wrap(myFunctions.onCreate);
// rest of my test code
但是当我运行测试时,我又遇到了一个错误
{"severity":"WARNING","message":"警告,FIREBASE_CONFIG 和 GCLOUD_PROJECT 环境变量丢失。初始化 firebase-admin 将失败"}
错误:../../../service-account.json 中的文件不存在,或者 不是文件。 ENOENT:没有这样的文件或目录,lstat '/Users/xxx/Documents/service-account.json'
服务帐户 json 文件不存在?我相信我已经像这样正确设置了路径
其实我是用intellisense来引导我到service-account.json路径的
service-account.json 文件如下图所示,我从 firebase 项目概述 --> 项目设置 --> 服务帐户 --> 生成新私钥中获取它
如果我想在 Firebase 模拟器中初始化 firebase 函数测试 SDK 应该怎么做?
【问题讨论】:
标签: node.js firebase google-cloud-firestore google-cloud-functions