Этот урок посвящён работе с базой данных Firebase и её интеграции в Flutter-проект. Для Flutter-проектов существует множество СУБД. Firebase выбрана из-за лёгкой интеграции, простоты использования и поддержки работы в реальном времени.
Подключение Firebase
Для подключения Firebase, перейдите на официальный сайт. Если у вас есть учётная запись Google, авторизация уже пройдена. Нажмите «Get started», затем в консоли разработчика создайте новый проект, нажав «Add project».
Укажите имя проекта (например, «Flutter ToDo»). Для тестового проекта отключите Google Analytics и нажмите «Create project». После завершения создания проекта, нажмите «Continue».
Настройка Android и iOS приложений
В консоли Firebase создайте и настройте приложения Android и iOS.
Android: Укажите имя пакета. Его можно найти в файле AndroidManifest.xml в папке android/app/src/main. Обычно оно имеет формат com.<имя_домена>.<имя_проекта>. Например, com.aetprager.flutter_todo. Дополнительное название (например, «Flutter ToDo») необязательно. Нажмите «Register app». Скачайте файл google-services.json и поместите его в папку android/app.
В файлах build.gradle внесите следующие изменения:
- android/build.gradle: Добавьте в блок dependencies репозиторий Google (если отсутствует) и убедитесь, что он присутствует в блоке buildscript → repositories.
- android/app/build.gradle: Добавьте зависимость Firebase и необходимые плагины в начало файла. Установите минимальную версию SDK не ниже 25.
Возможны ошибки компиляции, не влияющие на работу приложения.
iOS: Добавьте приложение iOS аналогично Android. Скопируйте имя пакета из файла Info.plist в папке ios, удалив нижние подчёркивания. Дополнительное название необязательно. Нажмите «Register app». Скачайте файл GoogleService-Info.plist и поместите его в папку ios/Runner. Последующие шаги можно пропустить.
Создание базы данных
В консоли Firebase, на странице проекта, нажмите «Start by the Database», «Create Database», выберите «Test mode» и нажмите «Next». Укажите расположение и нажмите «Enable».
Работа с базой данных в Flutter
В main.dart импортируйте пакеты cloud_firestore и firebase_core. В классе со состоянием создайте асинхронный метод (например, initFirebase) с помощью async и вызовите await Firebase.initializeApp() для инициализации Firebase. Вызовите этот метод в initState.
Добавление, отображение и удаление записей
Добавление: FirebaseFirestore.instance.collection(‘items’).add({‘item’: userTodo});, где ‘items’ — имя коллекции, а userTodo — значение, вводимое пользователем.
Отображение: Используйте StreamBuilder с FirebaseFirestore.instance.collection(‘items’).snapshots() для получения обновлений данных в реальном времени. В функции builder проверьте snapshot.data.docs.isEmpty. Если записи есть, отобразите их, используя snapshot.data.docs[index].data()[‘item’].
Удаление: FirebaseFirestore.instance.collection(‘items’).doc(itemId).delete();, где itemId — ID записи.
В этом уроке мы подключили базу данных Firebase, добавили, удалили и отобразили записи. Приложение «Список дел» теперь работает с базой данных в режиме реального времени.