Flutter Firebase核心服务集成插件firebase_core_dart的使用

发布于 1周前 作者 gougou168 来自 Flutter

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);
}

使用说明

  1. 在项目的根目录下运行以下命令:

    dart pub add firebase_core_dart
    
  2. 导入它:

    import 'package:firebase_core_dart/firebase_core_dart.dart';
    
  3. 初始化默认应用时,将配置作为 initializeApp 方法中的选项传递,无需指定名称:

    const firebaseOptions = FirebaseOptions(
      appId: '...',
      apiKey: '...',
      projectId: '...',
      messagingSenderId: '...',
      authDomain: '...',
    );
    
    await Firebase.initializeApp(options: firebaseOptions);
    
  4. 如果在公共仓库中部署,请将配置作为环境变量传递:

    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'),
    );
    
  5. 注意初始化应在任何其他 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

1 回复

更多关于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 等。

回到顶部