Я следую руководству по каналу YouTube Firebase на , используя настраиваемые утверждения для авторизации . При попытке вызвать облачную функцию я постоянно получаю ответ «неверный запрос: недопустимый аргумент» от сервера firebase. Функция даже не вызывается. Я предполагаю, что структура data
неверна (недопустимый аргумент), но не знаю почему. Может кто-нибудь объяснить это?
облачная функция:
exports.addAdmin = functions.https.onCall( (data: any, context: any) => {
const email = data.email;
return grantAdminRole(email).then(() => {
return{
result: 'Admin role has been assigned successfully'
}
}).catch( err => {
return{
error: err
}
})
})
async function grantAdminRole(email: string): Promise<void> {
const user = await admin.auth().getUserByEmail(email);
if( user.customClaims && user.customClaims.admin === true ) {
return;
} else {
return admin.auth().setCustomUserClaims(user.uid, {
admin: true
})
}
};
клиент:
endpoint = 'https://[MY_FUNCTION_URL]';
userEmail = 'test@test.com';
constructor( private http: HttpClient ) {}
grantAdminRole() {
this.http.post(this.endpoint, this.userEmail ).subscribe( res => {
console.log(res);
});
}