я использую это руководство: https://firebase.google.com/docs/auth/admin/create-custom-tokens#using_a_service_account_id
, чтобы создать функцию node.js (развернутую в облачных функциях Google) для аутентификации моих пользователей. функция очень проста:
const admin = require('firebase-admin');
admin.initializeApp({
serviceAccountId: 'authenticator@igibo-b0b27.iam.gserviceaccount.com'
});
exports.authenticate = (req, res) => {
let pass;
let uid;
if (req.query) {
if (req.query.v == 3) {
pass = req.query.p;
uid = req.query.u;
}
admin.auth().createCustomToken(uid)
.then(function(customToken) {
res.status(200).send(customToken);
return customToken;
})
.catch(function(error) {
console.error("Error creating custom token:" + JSON.stringify(error));
res.status(400).send(error);
});
} else {
console.error("EMPTY to authentication");
res.end();
}
};
, но я получаю эту досадную ошибку:
{"code":"auth/insufficient-permission","message":"Permission iam.serviceAccounts.signBlob is required to perform this operation on service account projects/-/serviceAccounts/authenticator@igibo-b0b27.iam.gserviceaccount.com.; Please refer to https://firebase.google.com/docs/auth/admin/create-custom-tokens for more details on how to use and troubleshoot this feature."}
в том же учебнике говорится, что я должен go IAM и настроить некоторые роли для учетная запись службы, которую я сделал, но все еще получаю эту ошибку.
это абсолютно простая задача, и это не должно быть такой проблемой ... что я забыл? идентификатор правильный! роль правильная! код правильный!
что не так?