Прежде всего, я работаю с реагирующим родом
Я хотел использовать настраиваемые утверждения в своем проекте, поскольку он, кажется, соответствует распределению ролей, которое я ожидаю использовать в своем приложении.
после настройки моего приложения, следуя документации, я преуспел в создании некоторых функций
, но, вот в чем дело, когда я пытаюсь вызвать функцию, выбирая конечную точку, я всегда получаю эту ошибку:
в консоли
ошибка: объектное сообщение: статус «Неверный запрос»: «INVALID_ARGUMENT»
в консоли Firebase
addAdminRoleTest Request body is missing data. { email: 'dev@test.com' }
Я не смог найти никакого ответа на этот вопрос, кроме того, что я отправил неверную информацию из своей выборки, но я не понимаю, почему.
Я даже попытался упроститьмоя функция только для получения данных, которые я отправил, но у меня была та же самая ошибка
найти ниже моей облачной функции и метода вызова:
functions / index.js
exports.addAdminRole = functions.https.onCall((data, context) => {
// get user
return admin.auth().getUserByEmail(data.email).then(user => {
// if not already (admin)
if(user.customClaims && (user.customClaims).admin === true) {
return;
}
// add custom claim (admin)
return admin.auth().setCustomUserClaims(user.uid, {
admin: true
});
}).then(() => {
return {
message: `Bravo : ${data.email} fait partie de l'équipe Admins`
}
}).catch(err => {
return err;
});
});
упрощенная функция:
exports.addAdminRoleTest = functions.https.onCall(data => {
console.log("parse data : "+JSON.parse(data));
return (
JSON.parse(data)
);
});
adminScreen.js
function httpAddAdminRole() {
const initRequest = {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
},
body:JSON.stringify({
email: 'dev@test.com'
})
}
console.log(initRequest);
return fetch('https://us-central1-my-project.cloudfunctions.net/addAdminRole', initRequest)
.catch(err => console.log(err))
.then(res => res.json())
.then(parsedRes => {
console.log(parsedRes);
});
}