Мой код проверяет, авторизован ли пользователь, если он есть, выполняется правильный код. Если пользователь не, он запускает reject()
, чтобы отклонить обещание.
Если я запускаю проверенный код, я получаю
{"error":{"status":"INVALID_ARGUMENT","message":"Bad Request"}}
Я пытаюсь изменить код состояния на Запрещенный (код 403), который вы обычно делаете с res.status(403)
, однако, поскольку это обещание, оно другое. Как я могу изменить возвращенный код ошибки?
Мой код выглядит следующим образом:
const cloudFunction = functions.https.onCall((data, context) => {
return new Promise(function(resolve, reject) {
auth.verifyIdToken(data.userId).then(function(decodedToken) {
if(claims.admin === true) {
// Run code if user has admin role
}
else {
reject()
// Return error code 403 because user does not have admin role
}
}).catch(err => reject(err)) // Return error code 401 because user is not logged in
})
});