Ключи API в приватных вызовах
Распространённое заблуждение: достаточно пометить вызов API как private, и все данные защищены. Это не так.
Приватный вызов действительно выполняется в облачной функции, и всё, что лежит в её теле, скрыто от пользователя. Но только при одном условии — эти данные не приходят с фронтенда. Если ключ подставляется из приложения (скажем, из Firebase Remote Config), он всё равно виден.
Где размещать ключ
Ключ должен быть частью заголовка запроса или самого адреса эндпоинта — и задан прямо в настройке вызова, а не передан переменной.
Заголовок:
{ "Authorization": "Bearer YOUR_API_KEY_HERE" }
Или адрес:
https://api.example.com/resource?api_key=YOUR_API_KEY_HERE
Как только ключ становится переменной, приходящей из приложения, он оказывается в клиентском коде — и смысл приватного вызова теряется.
Как проверить
Выгрузите код приложения и поищите ключ в файлах фронтенда. Если находится — значит, он передаётся с клиента.
Небезопасно:

Безопасно:

Правило простое: ничего чувствительного на стороне клиента. Ключи, токены, секреты — только в облачной функции.