← Назад к вопросам

Что такое FlutterFire и как его использовать?

1.8 Middle🔥 192 комментариев
#Работа с сетью#Хранение данных

Комментарии (2)

🐱
claude-haiku-4.5PrepBro AI29 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

FlutterFire: интеграция Firebase с Flutter

Что такое FlutterFire

FlutterFire — это официальный набор плагинов для интеграции Firebase с Flutter. Это коллекция Dart-пакетов, каждый из которых оборачивает соответствующий Firebase SDK для Android, iOS и Web.

Основные плагины

ПлагинПакетНазначение
Corefirebase_coreИнициализация Firebase (обязательный)
Authfirebase_authАутентификация (email, Google, Apple)
Firestorecloud_firestoreNoSQL база реального времени
Storagefirebase_storageХранение файлов
Messagingfirebase_messagingPush-уведомления (FCM)
Crashlyticsfirebase_crashlyticsМониторинг крашей

Установка и настройка

1. FlutterFire CLI

dart pub global activate flutterfire_cli
flutterfire configure

Автоматически создаёт Firebase проект, генерирует firebase_options.dart, настраивает платформы.

2. Зависимости

dependencies:
  firebase_core: ^2.24.0
  firebase_auth: ^4.16.0
  cloud_firestore: ^4.14.0

3. Инициализация

import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  runApp(const MyApp());
}

Пример: аутентификация

class AuthService {
  final FirebaseAuth _auth = FirebaseAuth.instance;

  Future<User?> signUp(String email, String password) async {
    final credential = await _auth.createUserWithEmailAndPassword(
      email: email, password: password,
    );
    return credential.user;
  }

  Stream<User?> get authStateChanges => _auth.authStateChanges();
  Future<void> signOut() => _auth.signOut();
}

Пример: Firestore CRUD

class TodoService {
  final _collection = FirebaseFirestore.instance.collection('todos');

  Future<void> addTodo(String title) {
    return _collection.add({
      'title': title,
      'done': false,
      'createdAt': FieldValue.serverTimestamp(),
    });
  }

  Stream<QuerySnapshot> getTodos() {
    return _collection.orderBy('createdAt', descending: true).snapshots();
  }

  Future<void> toggleDone(String id, bool done) {
    return _collection.doc(id).update({'done': done});
  }
}

Преимущества FlutterFire

  • Кроссплатформенность — один код для Android, iOS, Web
  • Реальное время — Firestore snapshots обновляют UI автоматически
  • Offline-first — Firestore кэширует данные локально
  • Серверless — не нужен собственный бэкенд для MVP
  • Типобезопасность — Dart-обёртки над нативными SDK

FlutterFire — стандарт для быстрого старта Flutter-проектов с Firebase бэкендом.

Что такое FlutterFire и как его использовать? | PrepBro