Я борюсь с тем, как безопасным способом записать данные из внешнего интерфейса в Firestore. На бэкэнде я могу использовать Firebase Admin, но это не вариант для внешнего интерфейса. Я полагаю, что не могу использовать профиль пользователя, потому что данные, которые я хочу прочитать и записать, не нужны пользователю. Я хочу прочитать данные для веб-сайта презентации по умолчанию (и клиент хочет позже отредактировать текст в базе данных, чтобы я не мог сохранить его в самом интерфейсе), и мне нужно время от времени записывать данные в базу данных для получения информации, такой как контакт формы.
У меня уже были идеи установить адрес хостинга Firebase в списке отправленных авторизованных запросов, но я прочитал, что это возможно с помощью таких сервисов, как Postman, чтобы обойти этот список, потому что Postman не заботится о той же политике происхождения.
Другая идея состоит в том, чтобы переместить все действия записи в бэкэнд. Я бы написал для этого функцию Firebase. Но могу ли я публиковать http запросы к функциям, хранящимся в Firebase? И если я вызову функцию Firebase из внешнего интерфейса. Не будет ли это снова небезопасным, потому что все другие люди могут использовать мои учетные данные и вызов функций для того же? Будет ли безопаснее читать данные только через REST API (кроме данных, которые я хочу просмотреть)? Но как насчет письма?
Моя настройка среды: Vue 2.6.10 + Webpack (для связывания моего SPA и загрузки простой папки dist в Firebase Hosting) + Экспресс для функций.
Мое текущее решение по статусу разработки состоит в том, чтобы отправить данные из внешнего интерфейса в базу данных и просмотреть эту коллекцию с помощью функции Firebase. Если появляются новые данные, функция делает вещи.