← Назад к вопросам
Что такое 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.
Основные плагины
| Плагин | Пакет | Назначение |
|---|---|---|
| Core | firebase_core | Инициализация Firebase (обязательный) |
| Auth | firebase_auth | Аутентификация (email, Google, Apple) |
| Firestore | cloud_firestore | NoSQL база реального времени |
| Storage | firebase_storage | Хранение файлов |
| Messaging | firebase_messaging | Push-уведомления (FCM) |
| Crashlytics | firebase_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 бэкендом.