Какой у вас опыт работы с Firebase
Что проверяют
Работали ли вы с Firebase как с полноценным бэкендом для веб-клиента и понимаете ли, что в этой модели защита данных держится на правилах, а не на скрытом коде. Следом часто спрашивают, как вы писали Security Rules и что делали с подписками при размонтировании компонента.
Как отвечать
Покажите, какие сервисы использовали и как именно:
- SDK: модульный API с версии 9.
initializeApp,getAuth,getFirestoreимпортируются по отдельности, и сборщик выкидывает неиспользуемое. Слойfirebase/compatнужен только для миграции старого кода; - Authentication: почта, Google, GitHub, подписка
onAuthStateChangedдля восстановления сессии.signInWithRedirectв браузерах, которые ограничивают стороннее хранилище (прежде всего Safari и Firefox), требует дополнительной настройки домена, иначе вход молча не завершается; - Cloud Firestore:
onSnapshotдля обновлений в реальном времени,queryсwhere,orderByиlimit, пагинация курсоромstartAfter. Для составных запросов нужны композитные индексы; - Security Rules и App Check: правила проверяют
request.authи поля документа, App Check отсекает запросы не из вашего приложения; - Hosting, Cloud Functions, Storage: статика и превью-каналы, серверная логика и триггеры, загрузка файлов. Для SSR на Next.js или Angular у Firebase есть App Hosting;
- Emulator Suite: локальный запуск Auth, Firestore и Functions для разработки и тестов правил.
Затем свой пример с деталями и цифрами из проекта. Если Firebase был только в учебном проекте, так и скажите и покажите, что понимаете его ограничения.
Где спотыкаются
Прячут apiKey из конфига и при этом открывают базу правилом allow read, write: if true. Ключ публичен по замыслу, данные защищают правила.
Не отписываются. onSnapshot возвращает функцию отписки, и без её вызова в очистке useEffect слушатели копятся при каждом переходе.
Вешают слушатель на всю коллекцию. Каждый прочитанный документ оплачивается, и лента без limit быстро становится дорогой.