Ваш код облачной функции выглядит нормально, и настраиваемая заявка должна быть правильно установлена.
Проблема, с которой вы, похоже, сталкиваетесь, заключается в том, что вы не можете подтвердить, что заявка установлена правильно.Фактически, метод setCustomUserClaims()
возвращает ненулевое Обещание, содержащее void (и ничто иное!).
Вы можете сделать следующее, если хотите проверить через Журнал, что утверждение имеетбыл правильно установлен.
exports.addDefaultUserRole = functions.auth.user().onCreate((user) => {
let uid = user.uid;
//add custom claims
return admin.auth().setCustomUserClaims(uid,{
isAdmin: true
})
.then(() => {
//Interesting to note: we need to re-fetch the userRecord, as the user variable **does not** hold the claim
return admin.auth().getUser(uid);
})
.then(userRecord => {
console.log(uid);
console.log(userRecord.customClaims.isAdmin);
return null;
});
});
Наконец, обратите внимание, что добавление пользовательских утверждений при создании пользователя вовсе не является «плохой практикой»!Это имеет смысл делать при создании пользователя, когда вы знаете, какие претензии нужно установить.