# #firebase #google-cloud-platform #firebase-authentication #google-cloud-functions
Вопрос:
Я начинаю углубляться в Правила безопасности Firebase и следую документам Правил безопасности Firebase, но в этом документе говорится только о базе данных в реальном времени, Облачном магазине Firestore и параметрах облачного хранилища. Существует ли способ использовать аутентификацию Firebase для защиты вызова функции Google Cloud со стороны клиента?
Я пытаюсь использовать функцию GC в качестве серверной части для доступа к облачному SQL из веб-приложения.
Ответ №1:
Облачные функции обычно используют SDK администратора (или учетные записи служб, учетные данные приложения по умолчанию для доступа к любым другим службам, таким как облачный SQL), который имеет полный доступ к ресурсам вашего проекта Firebase, а также обходит все правила безопасности. При этом вам придется самостоятельно разрешать запросы. Например, если вы используете onCall
функцию:
export const fnName = functions.https.onCall((data, context) => {
const { auth } = context
if (!auth) console.log('User not logged in')
const { uid } = auth;
// UID of user who called the function
// Check if user has access to requested resource
// process request
})
Если вызывающая функция не аутентифицирована, то context.auth
она будет неопределенной.
Если ваш вопрос заключается в том, можете ли вы предотвратить вызов функции в первую очередь, то в настоящее время нет способа сделать это. Вы можете использовать проверку приложений Firebase, чтобы убедиться, что функция вызывается только из вашего зарегистрированного приложения.