Cod*_*000 29 javascript node.js google-compute-engine google-cloud-platform
情况:
我按照本教程操作:https://cloud.google.com/nodejs/tutorials/bookshelf-on-compute-engine
一切正常,直到我npm start去,并去:
我在空白页面上遇到以下文字:
Could not load the default credentials. Browse to https://developers.google.com/accounts/docs/application-default-credentials for more information.
因为我使用OAuth,这没有任何意义.我按照链接阅读了页面,但我没有任何GOOGLE-APPLICATION-CREDENTIALS字段,在教程中没有任何内容.
题:
您能否重现这些步骤并告诉我您是否得到相同的结果?
(需要5分钟)
如果没有,我可能做错了什么?
new*_*eek 98
是的,我有同样的错误.令人讨厌的是因为谷歌云平台文档的"入门"书架教程在任何地方都没有提到这一点.这意味着尝试本教程的任何新开发人员都会看到此错误.
请阅读:https: //developers.google.com/identity/protocols/application-default-credentials
我通过运行修复此问题:
gcloud auth application-default login
这将使您登录,之后您在本地编码将使用该身份验证.
Tal*_*Tal 19
我面临着同样的问题。它通过以下命令修复。
gcloud auth application-default login
它将默认的 gcloud 云凭据存储在您的系统上并使用相同的凭据。
Can*_*ner 12
这个问题有2个解决方案.其他人提到的一种选择是使用gcloud auth application-default login
第二个选项是设置环境变量GOOGLE_APPLICATION_CREDENTIALS.它应指向定义凭据的文件.要获取此文件,您需要按照以下步骤操作:
转到API控制台凭据页面.
从项目下拉列表中,选择您的项目.
在"凭据"页面上,选择"创建凭据"下拉列表,然后选择"服务帐户密钥".
从"服务帐户"下拉列表中,选择现有服务帐户或创建新帐户.
对于Key type,选择JSON键选项,然后选择Create.该文件会自动下载到您的计算机.
将刚刚下载的*.json文件放在您选择的目录中.
此目录必须是私有的(您不能让任何人访问此目录),但可以访问您的Web服务器代码.
将环境变量GOOGLE_APPLICATION_CREDENTIALS设置为下载的JSON文件的路径.
有关详细信息,请参阅https://developers.google.com/identity/protocols/application-default-credentials
我收到此错误是因为最初我喜欢以下内容:
var admin = require("firebase-admin");
admin.initializeApp(); // I didnt add anything because firebaserc file include appName
当我部署函数时它有效,但在serve. 所以这就是我解决它的方法:
前(node.js):
var admin = require("firebase-admin");
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://your-domain.firebaseio.com"
});
serviceAccountKey.json文件。initializeApp(),请访问该文件,例如:(./socialape-15456-68dfdc857c55.json在我的情况下,两个文件都位于:functions/index.js并且functions/services.son在functions目录和index.js文件中,我初始化了我的firebase adminsdk)。前(节点.js):
const functions = require('firebase-functions');
var admin = require("firebase-admin");
var serviceAccount = require("./myapp-15456-68dfdc857c55.json");
admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://myapp-15456.firebaseio.com"
});
创建.env文件并将您的文件包含在其中并像其他人提到的那样访问它是一个最好的主意。我把那部分留给你。
希望这能帮助地球上的某个人。问候!
使用创建服务帐户密钥并下载json文件。https://console.cloud.google.com/apis/credentials/serviceaccountkey
将此添加到您的ENV文件
GOOGLE_APPLICATION_CREDENTIALS = "<PATH_TO_SERVICE_ACCOUNT_JSON_FILE>"
例如:
GOOGLE_APPLICATION_CREDENTIALS=/Users/hello/Documents/ssh/my-10ebbbc8b3df.json
转到此处:https : //firebase.google.com/docs/admin/setup#initialize_the_sdk并按照说明创建私钥。然后在您下载了您的私钥后,在项目目录中打开命令提示符并执行以下命令:
 set GOOGLE_APPLICATION_CREDENTIALS=C:\YOUR-PATH\YOUR-KEY.json
| 归档时间: | 
 | 
| 查看次数: | 30318 次 | 
| 最近记录: |