Firebase Базовый 24 минуты

Firebase в России: почему для рабочего проекта лучше другой бэкенд

Почему Firebase неудобен для российского приложения: где хранятся данные, что требует 152-ФЗ, как устроена оплата и когда стоит перейти на сервер в России.

Firebase помогает быстро собрать приложение во FlutterFlow: настроить регистрацию, сохранить заявки и показать их пользователю. За хранение данных и обработку запросов отвечает серверная часть приложения, или бэкенд. Firebase берёт эту работу на себя, поэтому для первого прототипа он кажется удобным выбором.

Перед запуском приложения для российских клиентов придётся разобраться, где хранятся их данные, соблюдается ли российское законодательство и как оплачивать Firebase. Если потом понадобится другой сервер, часть приложения придётся переделать.

Для нового приложения с персональными данными граждан РФ я бы сразу выбирал сервер в России. Firebase можно использовать для обучения и проверки интерфейса на вымышленных данных. Но запускать на нём клиентскую базу с мыслью «пока мы маленькие, потом разберёмся» не стоит. Требования к данным действуют и для первой простой версии приложения, которую обычно называют MVP.

Возьмём приложение для записи к мастеру. Пока вы показываете заказчику экраны, можно заполнить их вымышленными именами и записями. Когда приложением начинают пользоваться клиенты, в базе появляются настоящие телефоны и история посещений. Экраны почти не меняются, но теперь вы отвечаете за чужие персональные данные.

Firebase и 152-ФЗ: где возникает нарушение

При сборе персональных данных граждан РФ закон запрещает записывать, накапливать, хранить и выполнять другие перечисленные в нём действия с этими данными в базах за пределами России. Это требование части 5 статьи 18 закона № 152-ФЗ. Его называют требованием локализации данных. Редакцию с прямым запретом ввёл закон № 23-ФЗ от 28 февраля 2025 года; она действует с 1 июля 2025 года.

В законе есть исключения: они перечислены в пунктах 2, 3, 4 и 8 части 1 статьи 6. Отдельного исключения для стартапов, бесплатных приложений или небольшой аудитории там нет. Если у мастера всего двадцать клиентов, их данные всё равно нужно обрабатывать по закону.

Посмотрим, где Firebase хранит данные:

  • Для базы Cloud Firestore нельзя выбрать сервер в России: такого варианта нет в списке регионов Google. Сервер в Европе тоже находится за пределами РФ.
  • Firebase Authentication, сервис регистрации и входа в приложение, обрабатывает данные исключительно в США. Это указано в документации Google. Дальше будем называть его сокращённо: Firebase Auth.

Из этого следует: если российский сервис собирает персональные данные граждан РФ прямо в Firebase Auth и Firestore, а исключения из закона к нему не относятся, такая схема нарушает требование локализации. Закон не запрещает Firebase по названию. Нарушение возникает из-за того, какие данные приложение собирает и куда их отправляет.

В приложении для записи к мастеру это происходит уже при регистрации. Клиент вводит электронную почту, и приложение отправляет её в Firebase Auth. Затем клиент указывает имя и телефон, которые сохраняются в Firestore. Данные сразу попадают на зарубежные серверы.

Даже телефон клиента — уже персональные данные

Для этого не обязательно собирать паспорта. Имя, телефон, электронная почта, адрес доставки и история заказов могут быть персональными данными, если относятся к определённому человеку. Закон охватывает сведения, по которым можно определить человека прямо или косвенно. Определение в статье 3 закона № 152-ФЗ.

Поэтому удаления поля «ФИО» недостаточно. Если вы по-прежнему можете связать запись с человеком через его аккаунт или телефон, данные не стали анонимными.

При переносе базы легко забыть о регистрации. Допустим, вы сохранили все заявки на российском сервере, но оставили вход через Firebase Auth. Адреса электронной почты и телефоны при регистрации продолжат уходить в США. Проверять нужно весь путь данных с первого экрана приложения.

Почему не помогают согласие и копия базы в России

Согласие пользователя может быть основанием для обработки его данных. Но оно само по себе не разрешает собирать их в зарубежную базу: пункт 1 части 1 статьи 6, который регулирует обработку с согласия, не входит в исключения части 5 статьи 18. Галочка «согласен на хранение за рубежом» эту проблему не решает. Условия обработки в статье 6.

Не поможет и ежедневная копия базы на российском сервере. Если приложение сначала записывает данные в Firebase, копирование после этого не меняет место первоначального сбора.

При этом дальнейшая передача данных за границу, которую закон называет трансграничной передачей, возможна при соблюдении отдельных требований. Минцифры в письме от 12 мая 2025 года № П25-44929 разъяснило: новая норма сама по себе не запрещает передавать за рубеж данные, ранее собранные в российских базах.

Для такой передачи нужны законное основание, проверка того, как получатель защищает данные, и предварительное уведомление Роскомнадзора. Также нужно учитывать предусмотренные законом ограничения. Статья 12 закона № 152-ФЗ. Порядок работы вашего приложения стоит разобрать с юристом. Недостаточно просто добавить российский сервер: нужно проверить, куда данные отправляются на каждом шаге и что с ними происходит.

Кто отвечает и чем рискует

Оператором персональных данных в обычном приложении бизнеса будет компания или предприниматель, которые решают, зачем и какие сведения собирать. Даже если приложение сделал подрядчик, а данные хранятся в облаке Google, у владельца бизнеса остаются обязанности по их обработке. Это следует из статьи 3 и частей 3–5 статьи 6 закона № 152-ФЗ.

За нарушение локализации часть 8 статьи 13.11 КоАП РФ предусматривает для юридических лиц штраф от 1 до 6 млн рублей. За повторное нарушение по части 9 — от 6 до 18 млн. Для ИП за эти нарушения предусмотрены такие же штрафы. Конкретное наказание зависит от обстоятельств дела. Статья 13.11 КоАП РФ.

Когда Firebase подходит для прототипа

Firebase может обслуживать и крупные приложения: его база данных рассчитана на рост нагрузки. Описание Cloud Firestore. Для российского проекта основная сложность в требованиях к данным и условиях работы с зарубежным сервисом.

Есть разница между двумя прототипами. В первом разработчик показывает заказчику пять экранов с вымышленными записями. Во втором уже пятьдесят настоящих клиентов вводят телефоны и оставляют заявки. Команда может называть оба проекта MVP, но второй уже обрабатывает реальные персональные данные.

Что вы делаетеПодойдёт ли Firebase
Учитесь, проверяете запросы, заполняете экраны вымышленными записямиПодойдёт для знакомства с инструментом. Но проверьте, не отправляют ли подключённые сервисы реальные данные автоматически.
Показываете прототип небольшой группеМожно использовать для проверки идеи, если не загружать настоящую клиентскую базу и следить за тем, какие данные собирает приложение.
Запускаете первую версию с настоящими регистрациями и заявками граждан РФТребования к данным уже действуют. Сервер в России лучше подготовить до первого запуска.
Делаете внутреннюю систему учёта клиентов или сотрудниковЗакрытый доступ не освобождает от требований к персональным данным.
Делаете приложение для зарубежного рынкаНужно учитывать законы соответствующих стран, аудиторию и возможность оплачивать сервис по правилам Google.

Требования зависят от того, какие данные вы собираете и что с ними делаете. Размер проекта сам по себе ничего не меняет. Статья 3 и часть 5 статьи 18 закона № 152-ФЗ.

Для экспериментов на своём компьютере есть Firebase Local Emulator Suite. Это набор инструментов, которые воспроизводят работу базы, регистрации и правил доступа. С ними можно проверять приложение на тестовых данных. Убедитесь, что оно действительно обращается к этим инструментам, а не к облаку Firebase. Использовать их вместо сервера для работающего приложения Google не рекомендует.

Как оплатить Firebase из России

Даже если вы разобрались с хранением данных, остаётся вопрос оплаты. Российские Visa и Mastercard не работают для международных платежей после приостановки операций платёжными системами. Чтобы оплатить Firebase картой, обычно нужна карта иностранного банка. Сообщение Visa, сообщение Mastercard.

Но одной карты недостаточно. Платные услуги Firebase оплачиваются через Google Cloud. С 10 марта 2022 года Google Cloud приостановил регистрацию новых аккаунтов для пользователей в России. Получение зарубежной карты этого ограничения не отменяет. Информация Google об оплате.

При подключении оплаты Google просит указать данные плательщика и его страну. Страна должна соответствовать настоящему платёжному адресу; изменить её в уже созданном платёжном аккаунте нельзя. В документации Google эти настройки относятся к Cloud Billing — системе оплаты облачных услуг. Как подключается оплата.

Подойдёт не любая зарубежная карта. Google Cloud не принимает предоплаченные карты, а дебетовая должна поддерживать автоматические списания. Поэтому перед покупкой виртуальной карты стоит выяснить у её продавца или банка, подходит ли она для оплаты Google Cloud. Какие способы оплаты принимает Google.

Если нет возможности оплатить Firebase, придётся либо ограничиться функциями бесплатного тарифа, либо выбрать другой сервис. Для нового приложения с данными российских клиентов второй вариант разумнее рассмотреть сразу.

Покупка «готового Firebase с оплатой» у незнакомого посредника добавляет проблем. Кто будет владельцем проекта? Кто сможет восстановить доступ? Что произойдёт, если посредник перестанет оплачивать счета? От этих ответов зависит работа приложения. Передавать такую ответственность человеку, о котором вы ничего не знаете, рискованно.

Что можно сделать бесплатно, а за что придётся платить

У Firebase два основных тарифа. Spark позволяет начать бесплатно, без привязки карты. Blaze открывает дополнительные возможности и требует подключить оплату. На нём тоже есть бесплатные лимиты, но за использование ресурсов сверх них Google выставляет счёт.

Что нужно приложениюКакой тариф нужен
Хранить небольшой объём записей в базе Cloud Firestore StandardSpark, пока вы укладываетесь в бесплатные лимиты
Регистрировать пользователей по электронной почте и паролю или через другие аккаунтыМожно на Spark, с учётом ограничений сервиса
Подтверждать вход кодом из SMS на настоящий номерBlaze с подключённой оплатой
Хранить фотографии и другие файлы в Cloud StorageBlaze с подключённой оплатой
Выполнять код на сервере с помощью Cloud FunctionsBlaze с подключённой оплатой
Доставлять уведомления на устройства через Firebase Cloud MessagingСама доставка уведомлений бесплатна

Подробные условия есть в тарифах Firebase. Бесплатный доступ к сервису не отменяет требования к обработке персональных данных.

Например, для хранения файлов в Cloud Storage с 3 февраля 2026 года требуется Blaze. Это касается и старых хранилищ: без перехода на этот тариф файлы нельзя читать или записывать. Google сообщает, что сами файлы сохраняются, а доступ возвращается после подключения Blaze. Даже если у вас всего несколько фотографий, оплату всё равно нужно подключить. Объяснение Google об изменениях в хранении файлов.

Во FlutterFlow есть ещё одна особенность. Встроенная отправка уведомлений использует Cloud Functions — код, который выполняется на сервере Google. Поэтому для неё нужен Blaze, хотя доставка уведомлений через Firebase Cloud Messaging бесплатна. Как работают уведомления во FlutterFlow.

На Blaze можно настроить предупреждение, когда расходы достигнут выбранной суммы. Но это именно предупреждение: оно само по себе не остановит работу сервиса и дальнейшие списания. Как следить за расходами Firebase.

Почему замену Firebase лучше продумать заранее

В готовом приложении Firebase связан со многими экранами и действиями. Заменить его обычно сложнее, чем поменять адрес сервера в настройках.

Возьмём запись к мастеру. В Firestore она может ссылаться на отдельную запись о клиенте. По этой ссылке приложение находит нужного пользователя, а правила доступа определяют, кто увидит его заявку. При переходе на другую базу, например PostgreSQL, нужно заново связать клиентов с заявками и настроить доступ. Затем придётся изменить запросы в самом FlutterFlow.

Отдельно нужно проверить регистрацию, восстановление пароля и загрузку фотографий. Если уведомление о новой записи отправлял код на сервере Firebase, эту работу тоже придётся перенести.

Поэтому план «быстро соберём на Firebase, а перед запуском заменим базу» означает, что часть работы вы сделаете дважды. Для демонстрации идеи это иногда оправданно. Но если вы уже знаете, что приложение будет работать с российскими клиентами, лучше сразу настроить регистрацию и приём заявок на сервере в России.

Что использовать вместо Firebase для российского приложения

Supabase на сервере в России

Для FlutterFlow стоит рассмотреть Supabase. В нём есть база данных PostgreSQL, регистрация пользователей и хранилище файлов. Supabase можно установить самостоятельно на выбранный вами сервер.

FlutterFlow умеет подключаться к такой установке. В настройках нужно указать адрес сервера и публичный ключ для подключения, затем загрузить структуру базы в редактор. Инструкция по подключению.

При выборе сервера проверьте, что он физически находится в России. Это нужно уточнять даже у российского провайдера: у него могут быть площадки в разных странах. Обычная регистрация в облачном Supabase Cloud тоже не означает, что ваши данные будут храниться в РФ.

Свой сервер нужно обслуживать: устанавливать обновления, следить за работой и делать резервные копии. Причём копии нужно проверять — получится ли из них восстановить приложение после сбоя. Если в команде некому этим заниматься, заложите деньги на специалиста или выберите сервис, где обслуживание берёт на себя провайдер.

Установку мы разобрали в руководстве по Supabase на своём сервере. Перед переносом приложения определите, какие таблицы нужны и кто сможет видеть или менять записи в них.

Другие варианты

Можно написать собственную серверную часть с базой PostgreSQL, выбрать подходящий сервис российского провайдера или установить Appwrite на свой сервер.

Для подключения к такой системе во FlutterFlow можно настроить запросы к серверу через API. Так называют способ, которым приложение получает данные и передаёт команды: например, «покажи мои заявки» или «создай новую запись». Объём настройки зависит от выбранного сервиса.

Проверять его удобно на одном примере: пользователь регистрируется, создаёт заявку, прикладывает файл и видит только свои записи. Так вы поймёте, что уже работает, а что придётся дописать.

Учитывайте все сервисы, которые получают данные пользователей. Например, письма с подтверждением регистрации может отправлять отдельная почтовая служба. Даже если база стоит в России, нужно выяснить, куда эта служба передаёт адреса получателей и содержимое писем. Так же проверьте SMS, файлы и резервные копии.

Сервер в РФ решает только часть вопросов по 152-ФЗ. Потребуются законные основания для обработки данных, документы для пользователей, настройка доступа, защита данных и, когда это требуется, уведомление Роскомнадзора. Эти обязанности устанавливают статья 18.1 и другие положения закона. Что именно нужно вашему приложению, следует определить до запуска.

Можно ли оставить Firebase для уведомлений и аналитики

Технически можно хранить заказы на своём сервере, а уведомления доставлять через Firebase Cloud Messaging, сокращённо FCM. Например, ваш сервер сообщает, что заказ готов, а FCM передаёт уведомление на Android-устройство. Для этого необязательно использовать Cloud Functions. Как устроен Firebase Cloud Messaging.

Но и здесь нужно разобраться, какие данные получает Google. Для доставки уведомлений используются специальные идентификаторы, по которым сервис определяет нужную установку приложения. Если такой идентификатор связан с пользователем, его нельзя автоматически считать анонимным. Сервис Crashlytics, который собирает отчёты об ошибках, тоже получает сведения о сбоях и связанные идентификаторы. Какие данные обрабатывают сервисы Firebase.

В уведомлении лучше передавать минимум сведений. Текст «У вас новое сообщение» позволяет оставить саму переписку на вашем сервере. Если же отправить имя, телефон и содержание обращения, все эти сведения тоже пройдут через сервис доставки. Сокращение объёма данных полезно, но законность их передачи всё равно нужно проверить.

С аналитикой похожая ситуация. Подключённые к приложению библиотеки могут собирать информацию автоматически, даже если вы не добавляли в отчёты телефоны и почту вручную. Нужно выяснить, что именно они отправляют и куда. Поэтому после переноса базы в Россию нельзя просто забыть про Firebase Analytics и Crashlytics: проверьте каждый оставшийся сервис.

Что делать, если приложение уже работает на Firebase

Сначала составьте список того, что придётся переносить. Проверьте регистрацию, создание профиля и отправку заявки. Какие данные получает Firebase Auth? Что сохраняется в Firestore? Где лежат фотографии? Какие сведения отправляют сервисы аналитики и отчётов об ошибках?

Если приложение собирает персональные данные граждан РФ прямо в зарубежную базу и исключения из закона к нему не относятся, исправление не стоит откладывать. Вместе с человеком, который отвечает за обработку данных, решите, какие формы нужно временно отключить или перевести на новый сервер. Даже если вы без проблем оплачиваете Firebase, требования к хранению данных остаются.

Перенос можно организовать в таком порядке:

  1. Подготовьте сервер в России. На вымышленных данных проверьте вход, восстановление пароля и создание заявки. Войдите с двух разных аккаунтов и убедитесь, что пользователи не видят чужие записи.
  2. Перенесите пользователей. Одного списка адресов электронной почты недостаточно, чтобы люди смогли войти со старыми паролями. У Supabase есть инструкция по переносу из Firebase Auth. Отдельно проверьте вход через Google или другие аккаунты, если он есть в приложении.
  3. Перенесите данные и файлы. Определите, в каких таблицах новой базы будут храниться записи из Firestore и как связать их между собой. Замените ссылки на фотографии и другие файлы. Перенос базы Firestore, перенос файлов.
  4. Обновите запросы и действия во FlutterFlow. Правила доступа в новой базе нужно настроить заново. Проверьте создание и отмену заявки, загрузку фотографии и отправку уведомления.
  5. Продумайте обновление приложения у пользователей. После выпуска новой версии на телефонах могут остаться старые, которые продолжают отправлять данные в Firebase. Решите, как прекратить такую запись, перенести последние изменения и сообщить людям, что приложение нужно обновить.
  6. Проверьте, что приложение больше не обращается к Firebase там, где вы его заменили. Затем разберитесь с оставшимися копиями данных, включая резервные копии и выгрузки для переноса. Что нужно сохранить, а что удалить, зависит от целей и законных оснований обработки.

Файлы лучше забрать до того, как доступ к ним закроется из-за неподключённой оплаты. Если Firebase уже не даёт их скачать, программа для переноса тоже не сможет их получить. А после перехода проверьте не только экраны, но и действия, которые выполняются автоматически: например, создание профиля после регистрации или отправку напоминания о записи.

Для приложения записи к мастеру всё это проще решить до появления настоящих клиентов. Firebase удобен, чтобы освоить FlutterFlow и показать идею. Если вы собираетесь принимать реальные заявки на российском рынке, сервер в России лучше выбрать в начале разработки. Тогда перед запуском не придётся заново делать регистрацию, переносить клиентскую базу и менять обработку заказов.

обновлено · опубликовано

Вопросы читателей

Пока вопросов нет. Задайте первый — отвечу и оставлю разбор прямо здесь.

Задать свой вопрос

Опишите, на каком шаге застряли и что показывает терминал. Отвечу и добавлю разбор сюда же — вопросы по этой статье полезны не только вам. Срочное быстрее решается в Telegram.

Вопрос отправлен — спасибо. Отвечу на почту, а разбор появится на этой странице.

Отправить не получилось. Напишите, пожалуйста, в Telegram — так вопрос точно дойдёт.

Публикуется имя и текст вопроса. Почта нужна только для ответа.