我想在不使用服务帐户 json 的情况下创建自定义令牌。尝试了以下配置项:https : //firebase.google.com/docs/auth/admin/create-custom-tokens#using_a_service_account_idhttps://firebase.google.com/docs/auth/admin/create-custom-tokens#letting_the_admin_sdk_discover_a_service_account并使用以下代码生成令牌admin.auth().createCustomToken(uid) .then(function(customToken) { // Send token back to client }) .catch(function(error) { console.log('Error creating custom token:', error); });得到以下错误:'未能确定服务帐户。确保使用服务帐户凭据初始化 SDK。或者,指定具有 iam.serviceAccounts.signBlob 权限的服务帐户。原始错误:错误:发出请求时出错:getaddrinfo ENOTFOUND 元数据元数据:80。错误代码:ENOTFOUND'使用最新的“firebase-admin”npm 模块。
3 回答
慕桂英546537
TA贡献1848条经验 获得超10个赞
简短回答:您不能,sdk 密钥是对您的应用进行身份验证和授权以授予权限的唯一方法。
长(不是那么长)答案:使用云函数,如果它在你的项目中,它会为你初始化它,所以你不必使用密钥来实例化sdk
皈依舞
TA贡献1851条经验 获得超3个赞
您应该首先通过将您的服务帐户密钥(从 Firebase 下载)传递给凭据来初始化 admin。在调用 admin.auth() 之前使用此代码。
var serviceAccount = require('./ServiceAccountKey.json')
admin.initializeApp({
credential: admin.credential.cert(serviceAccount)
});
人到中年有点甜
TA贡献1895条经验 获得超7个赞
如果您的代码未在 GCP 的托管运行时中运行,则您必须提供服务帐号 JSON 文件或至少提供serviceAccountId应用选项。
admin.initializeApp({
serviceAccountId: 'my-client-id@my-project-id.iam.gserviceaccount.com',
});
添加回答
举报
0/150
提交
取消