Краткий ответ: Вы не можете сделать это только для веб-сайта.
Более длинный ответ / объяснение:
Я знаюЕсть варианты для Node.js,
Хорошо ... это может работать.Разверните свой собственный сервер Node.js на Heroku и т. П., Который передает запросы в Firebase.
, но я ищу решение для веб-браузера.В Firefox есть настройки прокси-сервера, а в Google Chrome также есть несколько опций для разработчиков расширений, но
Это тоже может сработать, но, как я уверен, вы подумали ... это будет зависеть отконечные пользователи устанавливают эти расширения перед попыткой посетить ваш сайт.
Мне нужно решение, которое работает только на веб-странице,
Нет.Невозможно.Серверы Google не будут отвечать на любые запросы из санкционированной страны.Если запрос поступает из запрещенной страны, серверы Firebase не будут отвечать вашим веб-сайтом - вместо этого они ответят 403. Firebase не будет отправлять веб-сайт.Ваш сайт не будет отправлен клиенту.Неважно, что содержит ваш сайт, он никогда не будет отправлен этим конечным пользователям.
Даже если вы размещаете сайт в другом месте и просто используете базу данных Firebase, он все равно не будетработа - по тем же причинам.Когда серверы Firebase получают запрос от браузера, работающего в санкционированной стране, они отвечают 403.
Тогда возникает вопрос: как сделать так, чтобы запрос выглядел из-за пределов санкционированной страны, только с веб-сайта??
Вы не можете, не когда вы контролируете только сам сайт.Эта часть цикла запрос / ответ в целях защиты конечного пользователя обрабатывается браузером.Браузеры не предоставляют эту функциональность веб-страницам.
Если вы хотите обрабатывать все для своих пользователей, без необходимости использования VPN ( рабочий стол или браузер ), ваш единственный выбор - отправказапрос к другому серверу, не принадлежащему Google (, например, серверу Node.js, который вы размещаете на Heroku и т. п. ), который затем отправляет запрос в Firebase от их имени, получает ответ и отвечает обратноклиенту.Таким образом, для серверов Firebase создается впечатление, что запрос поступает из местоположения X *.
* X: Где бы ни работал сервер Heroku.