Flutter Firebase核心服务集成插件firebase_core_dart的使用
Flutter Firebase核心服务集成插件firebase_core_dart的使用
标题
Firebase Core for Dart
内容
Firebase Core for Dart 是一个纯 Dart 实现的 Firebase 核心服务,帮助您为您的 Dart 项目初始化多个 Firebase 应用。此包由 Firebase Core Desktop 插件使用。
- 英文介绍:A pure Dart implementation for Firebase Core, which helps you initialize multiple Firebase Apps for your Dart project. This package is used by the Firebase Core Desktop plugin.
- 中文介绍:Firebase Core for Dart 是一个纯 Dart 实现的 Firebase 核心服务,帮助您为您的 Dart 项目初始化多个 Firebase 应用。此包由 Firebase Core Desktop 插件使用。
示例代码
dart pub add firebase_core_dart
import 'package:firebase_core_dart/firebase_core_dart.dart';
void main() async {
// 初始化默认应用
const firebaseOptions = FirebaseOptions(
appId: 'YOUR_APP_ID',
apiKey: 'YOUR_API_KEY',
projectId: 'YOUR_PROJECT_ID',
messagingSenderId: 'YOUR_SENDER_ID',
authDomain: 'YOUR_AUTH_DOMAIN',
);
await Firebase.initializeApp(options: firebaseOptions);
// 初始化第二个应用
await Firebase.initializeApp(app: 'foo', options: firebaseOptions);
}
使用说明
-
在项目的根目录下运行以下命令:
dart pub add firebase_core_dart
-
导入它:
import 'package:firebase_core_dart/firebase_core_dart.dart';
-
初始化默认应用时,将配置作为
initializeApp
方法中的选项传递,无需指定名称:const firebaseOptions = FirebaseOptions( appId: '...', apiKey: '...', projectId: '...', messagingSenderId: '...', authDomain: '...', ); await Firebase.initializeApp(options: firebaseOptions);
-
如果在公共仓库中部署,请将配置作为环境变量传递:
const firebaseOptions = FirebaseOptions( appId: const String.fromEnvironment('FIREBASE_APP_ID'), apiKey: const String.fromEnvironment('FIREBASE_API_KEY'), projectId: const String.fromEnvironment('FIREBASE_PROJECT_ID'), messagingSenderId: const String.fromEnvironment('FIREBASE_SENDER_ID'), authDomain: const String.fromEnvironment('FIREBASE_AUTH_DOMAIN'), );
-
注意初始化应在任何其他 Firebase Dart 包使用之前进行。
初始化第二个应用
要初始化第二个应用,请提供名称给 initializeApp
方法:
await Firebase.initializeApp(app: 'foo', options: firebaseOptions);
问题和反馈
请在我们的问题追踪器中提交任何问题、bug 或功能请求:
https://github.com/invertase/flutterfire_desktop/issues/new/choose
要对这个插件进行贡献,请查看我们的贡献指南并打开拉取请求:
https://github.com/FirebaseExtended/flutterfire/blob/master/CONTRIBUTING.md
https://github.com/invertase/flutterfire_desktop/compare
更多关于Flutter Firebase核心服务集成插件firebase_core_dart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter Firebase核心服务集成插件firebase_core_dart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter项目中集成Firebase核心服务插件 firebase_core_dart
是与Firebase服务进行交互的基础。虽然 firebase_core_dart
不是官方直接维护的插件(通常我们使用 firebase_core
),但这里我将展示如何使用 firebase_core
来集成Firebase核心服务,因为 firebase_core
是官方推荐的插件。
首先,确保你已经完成了Firebase项目的设置,并在Firebase控制台中添加了你的Flutter应用。
步骤 1: 添加依赖
在你的 pubspec.yaml
文件中添加 firebase_core
依赖:
dependencies:
flutter:
sdk: flutter
firebase_core: ^1.10.0 # 请使用最新版本
步骤 2: 获取google-services.json文件
从Firebase控制台下载 google-services.json
文件,并将其放置在 android/app/
目录下。
对于iOS,你需要将 GoogleService-Info.plist
文件放置在 ios/Runner/
目录下,并确保在Xcode中正确配置。
步骤 3: 配置Android项目
在 android/app/build.gradle
文件中添加以下配置,以应用Google服务插件:
apply plugin: 'com.google.gms.google-services'
确保在项目的根目录 android/build.gradle
文件中包含Google服务类路径:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.google.gms:google-services:4.3.10' // 请使用最新版本
}
}
步骤 4: 配置iOS项目
确保在 ios/Runner/Info.plist
文件中注册了URL Scheme,这通常是在你下载 GoogleService-Info.plist
后自动完成的。
打开 ios/Runner/AppDelegate.swift
并添加以下代码以配置Firebase:
import Firebase
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
FirebaseApp.configure()
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
步骤 5: 初始化Firebase Core
在你的Flutter项目的入口文件(通常是 main.dart
)中,初始化Firebase Core:
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
void main() async {
// 等待Firebase初始化完成
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Firebase Core Integration'),
),
body: Center(
child: Text('Firebase is initialized!'),
),
),
);
}
}
完整代码示例
以下是所有步骤的汇总代码示例:
pubspec.yaml
name: my_flutter_app
description: A new Flutter application.
version: 1.0.0+1
environment:
sdk: ">=2.12.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
firebase_core: ^1.10.0 # 请使用最新版本
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
uses-material-design: true
android/app/build.gradle
android {
...
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.google.firebase:firebase-analytics'
// 其他依赖
}
apply plugin: 'com.google.gms.google-services'
android/build.gradle
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
classpath 'com.google.gms:google-services:4.3.10' // 请使用最新版本
}
}
allprojects {
repositories {
google()
jcenter()
}
}
main.dart
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Firebase Core Integration'),
),
body: Center(
child: Text('Firebase is initialized!'),
),
),
);
}
}
通过这些步骤,你应该已经成功地在Flutter项目中集成了Firebase核心服务。记得根据你的项目需求添加其他Firebase服务插件,如 firebase_auth
, firebase_firestore
等。