完整的错误如下:
Unhandled error Error: 16 UNAUTHENTICATED: Failed to retrieve auth metadata with error: Could not refresh access token: Unsuccessful response status code. Request failed with status code 500
at Object.callErrorFromStatus (/workspace/node_modules/@grpc/grpc-js/build/src/call.js:31:26)
at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client.js:327:49)
at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:299:181)
at /workspace/node_modules/@grpc/grpc-js/build/src/call-stream.js:145:78
at processTicksAndRejections (internal/process/task_queues.js:79:11)
Caused by: Error
at Query._get (/workspace/node_modules/@google-cloud/firestore/build/src/reference.js:1449:23)
at Query.get (/workspace/node_modules/@google-cloud/firestore/build/src/reference.js:1438:21)
at Object.getTeacherDataWithFilters (/workspace/lib/teachers/methods.js:168:81)
at /workspace/lib/teachers/callable.js:22:36
at func (/workspace/node_modules/firebase-functions/lib/providers/https.js:273:32)
at processTicksAndRejections (internal/process/task_queues.js:97:5) {
code: 16,
details: 'Failed to retrieve auth metadata with error: Could not refresh access token: Unsuccessful response status code. Request failed with status code 500',
metadata: Metadata { internalRepr: Map {}, options: {} }
我最近部署到firebase函数,现在我得到这个错误。我不知道发生了什么,我找不到任何具体的事情
6条答案
按热度按时间xiozqbni1#
我遇到了同样的错误,这是由于凭据的身份验证问题。下面的命令帮我修好了。
运行此命令后,我得到以下输出。
凭证已保存到文件:[/Users/username/.config/gcloud/application_default_credentials.json]。这些凭据将由请求应用程序默认凭据(ADC)的任何库使用。
Official Document for Reference
7ajki6be2#
我已经找到了真正的原因,这就是为什么我回答我自己的问题。我得到这个错误的原因是附加到这个项目的默认服务帐户,主要是像
<project-ID>@appspot.gserviceaccount.com
是禁用。启用后,一切正常。plicqrtu3#
1.尝试以UTF-8保存.env文件
1.什么对我起作用:process.env.TOKEN.replace(/\n/gm,'\n')
gk7wooem4#
如果有人在Vercel上部署,在设置PRIVATE_KEY env变量时需要做一个小的更改。您需要从key中删除开始和结束双引号。保存如下:
p5fdfcr15#
如果它在您的本地环境中工作正常,但在任何生产构建中出现故障,这里有一个很好的黑客可以在任何平台中对其进行排序:
此外,这在Vercel中的工作原理就像一个魅力(请注意,在Vercel中添加环境变量时,您不能放置任何引用并直接粘贴它,如:
{"privateKey":"XXX...."}
您的配置:
ekqde3dh6#
另一种情况是,如果你有一个使用google apis的app engine应用,那么在gcp中,你删除并重新创建(自定义或默认)服务帐户(例如,可能使用terraform)。
在您重新部署应用程序之前,它不会进行身份验证。