Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 无法针对Firestore emulator进行身份验证_Node.js_Firebase_Google Cloud Firestore - Fatal编程技术网

Node.js 无法针对Firestore emulator进行身份验证

Node.js 无法针对Firestore emulator进行身份验证,node.js,firebase,google-cloud-firestore,Node.js,Firebase,Google Cloud Firestore,我正在使用Firebase admin和Node+Express从Appengine更新Firestore文档。我想使用Firestore模拟器进行一些测试。下面是我得到的错误: Error in post /requests Error: {"servicePath":"localhost","port":8080, "clientConfig":{},"fallback":true,"

我正在使用Firebase admin和Node+Express从Appengine更新Firestore文档。我想使用Firestore模拟器进行一些测试。下面是我得到的错误:

Error in post /requests Error: {"servicePath":"localhost","port":8080,
"clientConfig":{},"fallback":true,"sslCreds":{"callCredentials":{}},
"projectId":"test-project","firebaseVersion":"9.4.1","libName":"gccl",
"libVersion":"4.7.1 fire/9.4.1","ssl":false,
"customHeaders":{"Authorization":"Bearer owner"},"scopes":[
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/datastore"
]}
You need to pass auth instance to use gRPC-fallback client in browser. Use OAuth2Client from google-auth-library.
每次测试前,我都会打电话:

var serviceAccount = require(process.env.FIREBASE_SA_CREDENTIAL);
firebaseAdmin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    projectId: 'test-project'
});
测试使用的类只访问Firestore,如下所示:

this.db = firebaseAdmin.firestore();
...
我有以下npm依赖项:

"@google-cloud/firestore": "^4.7.1",
"firebase": "^8.0.2",
"firebase-admin": "^9.4.1"
"firebase-tools": "^8.16.2"
我正在启动模拟器并使用以下各项运行测试:

firebase emulators:exec 'jest --verbose=false'

我看不出配置中有什么不正确-据我所知,模拟器应该接受所有的身份验证。错误消息表明它使用的是某个前端库而不是后端库,但依赖项似乎都是正确的。

确定,已解决。jest配置中缺少一行重要的代码:

module.exports = {
  testEnvironment: 'node'
}

测试环境:“节点”。这触发了Firebase LIB中的某些行为,使他们认为该环境是一个浏览器。

好的,解决了。jest配置中缺少一行重要的代码:

module.exports = {
  testEnvironment: 'node'
}

测试环境:“节点”。这触发了Firebase LIB中的某些行为,使他们认为该环境是一个浏览器。

出于好奇,您是否使用服务器端渲染?我发现我有这个问题,当我删除SSR函数时,我能够按预期运行它。出于好奇,您是否使用服务器端渲染?我发现我有这个问题,当我删除SSR函数时,我能够按预期运行它。