【发布时间】:2018-05-20 22:24:56
【问题描述】:
部署到 Firebase 项目时,我能够成功运行此代码。
const admin = require('firebase-admin');
const functions = require('firebase-functions');
admin.initializeApp();
exports.createUser = functions.https.onRequest((req, res) => {
admin.auth().createUser({ uid: req.body.id })
.then(user => {
return res.send(user);
})
.catch(err => {
return res.status(422).send({ error: err });
});
});
这是 Firebase 的回复:
{
"uid": "abcdefg1234",
"emailVerified": false,
"disabled": false,
"metadata": {
"lastSignInTime": null,
"creationTime": "Sun, 20 May 2018 22:22:55 GMT"
},
"tokensValidAfterTime": "Sun, 20 May 2018 22:22:55 GMT",
"providerData": []
}
但是,当我使用firebase serve 运行函数本地 并调用相同的函数(使用 Postman)时,我遇到了权限错误:
{
"error": {
"code": "auth/insufficient-permission",
"message": "Credential implementation provided to initializeApp() via the \"credential\" property has insufficient permission to access the requested resource. See https://firebase.google.com/docs/admin/setup for details on how to authenticate this SDK with appropriate permissions."
}
}
在本地运行的 Firebase Functions 实例上的 firebase-admin 身份验证设置是否与在正常的生产 Firebase 服务器上运行时不同?
规格:
"dependencies": {
"firebase-admin": "~5.12.0",
"firebase-functions": "^1.0.1"
}
【问题讨论】:
标签: node.js firebase firebase-authentication google-cloud-functions firebase-admin