Добавьте Firebase в свое приложение Flutter
Предпосылки
Установите предпочитаемый вами редактор или IDE .
Установите Flutter для вашей операционной системы, включая следующее:
- Flutter SDK
- Поддерживающие библиотеки
- Программное обеспечение и SDK для конкретных платформ
Войдите в Firebase, используя свою учетную запись Google.
Если у вас еще нет приложения Flutter, вы можете пройти курс «Начало работы: тест-драйв» , чтобы создать новое приложение Flutter с помощью предпочитаемого вами редактора или IDE.
Шаг 1 : Установите необходимые инструменты командной строки
Если вы еще этого не сделали, установите Firebase CLI .
Войдите в Firebase, используя свою учетную запись Google, выполнив следующую команду:
firebase loginУстановите FlutterFire CLI, выполнив следующую команду из любого каталога:
dart pub global activate flutterfire_cli
Шаг 2 : Настройте свои приложения для использования Firebase
Используйте FlutterFire CLI для настройки приложений Flutter для подключения к Firebase.
Из каталога проекта Flutter выполните следующую команду, чтобы начать рабочий процесс настройки приложения:
flutterfire configure
Рабочий процесс
flutterfire configureвыполняет следующие действия:
Предлагает выбрать платформы (iOS, Android, Web), поддерживаемые вашим приложением Flutter. Для каждой выбранной платформы интерфейс командной строки FlutterFire создаёт новое приложение Firebase в вашем проекте Firebase.
Вы можете использовать существующий проект Firebase или создать новый. Если у вас уже есть приложения, зарегистрированные в существующем проекте Firebase, интерфейс командной строки FlutterFire попытается сопоставить их с текущей конфигурацией проекта Flutter.
Создает файл конфигурации Firebase (
firebase_options.dart) и добавляет его в каталогlib/.(для Crashlytics или Performance Monitoring на Android) Добавляет необходимые плагины Gradle для конкретного продукта в ваше приложение Flutter.
Шаг 3 : Инициализируйте Firebase в вашем приложении
Из каталога проекта Flutter выполните следующую команду, чтобы установить основной плагин:
flutter pub add firebase_coreВ каталоге проекта Flutter выполните следующую команду, чтобы убедиться, что конфигурация Firebase вашего приложения Flutter актуальна:
flutterfire configureВ файле
lib/main.dartимпортируйте основной плагин Firebase и файл конфигурации, который вы сгенерировали ранее:import 'package:firebase_core/firebase_core.dart'; import 'firebase_options.dart';Также в файле
lib/main.dartинициализируйте Firebase, используя объектDefaultFirebaseOptions, экспортированный файлом конфигурации:WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); runApp(const MyApp());Перестройте свое приложение Flutter:
flutter run
Если вы предпочитаете использовать демонстрационный проект, вы можете запустить эмулятор Firebase и в файле lib/main.dart инициализировать Firebase, используя demoProjectId (он должен начинаться с demo- ):
await Firebase.initializeApp(
demoProjectId: "demo-project-id",
);
Шаг 4 : Добавьте плагины Firebase
Доступ к Firebase в приложении Flutter осуществляется через различные плагины Firebase Flutter , по одному для каждого продукта Firebase (например: Cloud Firestore , Authentication , Analytics и т. д.).
Поскольку Flutter — кроссплатформенный фреймворк, каждый плагин Firebase совместим с платформами Apple, Android и веб-приложениями. Таким образом, если вы добавите любой плагин Firebase в своё приложение Flutter, он будет использоваться версиями приложения для Apple, Android и веб-приложений.
Вот как добавить плагин Firebase Flutter:
Из каталога проекта Flutter выполните следующую команду:
flutter pub add PLUGIN_NAME
Из каталога проекта Flutter выполните следующую команду:
flutterfire configureВыполнение этой команды гарантирует, что конфигурация Firebase вашего приложения Flutter актуальна, а для Crashlytics и Performance Monitoring на Android добавит в ваше приложение требуемые плагины Gradle.
После завершения пересоберите свой проект Flutter:
flutter run
Всё готово! Ваши приложения Flutter зарегистрированы и настроены для использования Firebase.
Доступные плагины
| Продукт | Имя плагина | iOS | Андроид | Интернет | Другое яблоко (macOS и т. д.) | Окна |
|---|---|---|---|---|---|---|
| Firebase AI Logic 1 | firebase_ai | бета | ||||
| Analytics | firebase_analytics | бета | ||||
| App Check | firebase_app_check | бета | ||||
| Authentication | firebase_auth | бета | бета | |||
| Cloud Firestore | cloud_firestore | бета | бета | |||
| Cloud Functions | cloud_functions | бета | ||||
| Cloud Messaging | firebase_messaging | бета | ||||
| Cloud Storage | firebase_storage | бета | бета | |||
| Crashlytics | firebase_crashlytics | бета | ||||
| Data Connect | firebase_data_connect | |||||
| Dynamic Links | firebase_dynamic_links | |||||
| In-App Messaging | firebase_in_app_messaging | |||||
| Установки Firebase | firebase_app_installations | бета | ||||
| Загрузчик моделей ML | firebase_ml_model_downloader | бета | ||||
| Performance Monitoring | firebase_performance | |||||
| Realtime Database | firebase_database | бета | ||||
| Remote Config | firebase_remote_config | бета |
1 Firebase AI Logic ранее назывался « Vertex AI in Firebase » с плагином firebase_vertexai .
Попробуйте пример приложения с Analytics
Как и все пакеты, плагин firebase_analytics поставляется с примером программы .
Откройте приложение Flutter, которое вы уже настроили для использования Firebase (см. инструкции на этой странице).
Откройте каталог
libприложения, затем удалите существующий файлmain.dart.Из репозитория примеров программ Google Analytics скопируйте и вставьте следующие два файла в каталог
libвашего приложения:-
main.dart -
tabs_page.dart
-
Запустите приложение Flutter.
Перейдите к проекту Firebase вашего приложения в консоли Firebase , затем нажмите «Аналитика» в левой навигационной панели.
Нажмите «Панель мониторинга» . Если Analytics работает корректно, на панели «Пользователи, активные за последние 30 минут» отображается активный пользователь (заполнение этой панели может занять некоторое время).
Нажмите DebugView . Включите эту функцию, чтобы увидеть все события, сгенерированные примером программы.
Дополнительную информацию о настройке Analytics можно найти в руководствах по началу работы для iOS+ , Android и веб-приложений .
Заметки о создании веб-приложений
Поддержка доверенных типов
Firebase SDK для Flutter поддерживает использование доверенных типов для предотвращения межсайтовых атак (XSS) на стороне DOM (клиента). При включении принудительного применения доверенных типов для вашего приложения Firebase SDK внедряет свои скрипты в DOM, используя настраиваемые политики доверенных типов, называемые flutterfire-firebase_core , flutterfire-firebase_auth и т. д.
Отключить автоматическое внедрение Firebase JavaScript SDK
По умолчанию Firebase Flutter SDK автоматически внедряет Firebase JavaScript SDK при сборке для веб-приложений. Если вы не хотите, чтобы Firebase JavaScript SDK внедрялся автоматически, вы можете сделать следующее:
Игнорируйте скрипт автоматического внедрения, добавив следующее свойство в тег
<script>в файлеweb/index.htmlвашего проекта Flutter:<!-- Add this property inside a <script> tag within your "web/index.html" file in your Flutter project --> <!-- Put in the names of all the plugins you wish to ignore: --> window.flutterfire_ignore_scripts = ['analytics', 'firestore'];Загрузите скрипт вручную, используя один из следующих способов:
Добавьте SDK явно в файл
web/index.htmlвнутри обратного вызоваwindow.addEventListener:window.addEventListener('load', async function (ev) { window.firebase_firestore = await import("https://www.gstatic.com/firebasejs/12.7.0/firebase-firestore.js"); window.firebase_analytics = await import("https://www.gstatic.com/firebasejs/12.7.0/firebase-analytics.js"); _flutter.loader.loadEntrypoint().then(function (engineInitializer) { // rest of the codeИли загрузите код Firebase JavaScript SDK плагина из домена «gstatic» и сохраните его в файле JavaScript, который будет храниться в вашем проекте и загружаться вручную:
// "web/my-analytics.js" & "web/my-firestore.js" file loaded as a script into your "web/index.html" file: window.addEventListener('load', async function (ev) { window.firebase_analytics = await import("./my-analytics.js"); window.firebase_firestore = await import("./my-firestore.js"); _flutter.loader.loadEntrypoint().then(function (engineInitializer) { // rest of the code
Следующие шаги
Получите практический опыт работы с Firebase Flutter Codelab .
Подготовьтесь к запуску вашего приложения:
- Настройте оповещения о бюджете для вашего проекта в консоли Google Cloud .
- Отслеживайте панель использования и выставления счетов в консоли Firebase , чтобы получить общую картину использования вашего проекта в различных службах Firebase.
- Ознакомьтесь с контрольным списком запуска Firebase .