Flutter Firebase - FlutterFire基础配置

1,483 阅读4分钟

Flutter集成Firebase

FlutterFire是一套Flutter插件,可将Flutter应用程序连接到Firebase。

首先要创建一个Firebase项目

这一步跟这Firebase的流程走就可以

Android安装

在Android上使用FlutterFire之前,必须首先使用Android应用程序连接到Firebase项目。

生成Firebase项目配置文件

在Firebase控制台上,为您的Firebase项目添加一个新的Android应用程序或选择一个现有的Android应用程序。

注册您的Android应用后,请从Firebase控制台下载配置文件(该文件称为google-services.json)。将此文件添加到Flutter项目中的android / app目录中。

安装Firebase配置文件

为了允许Firebase在Android上使用配置,必须在项目上应用google-services插件。这需要修改android /目录中的两个文件。

首先,将google-services插件添加为android / build.gradle文件内的依赖项:

buildscript {
  dependencies {
    // ... other dependencies
    classpath 'com.google.gms:google-services:4.3.3'
  }
}

最后,在/android/app/build.gradle文件内的添加以下内容来执行插件:

apply plugin: 'com.android.application'
//add this
apply plugin: 'com.google.gms.google-services'

为Android构建

由于某些Firebase SDK(特别是Firestore)中的类很多,它可能使您超出Android构建系统上64k方法的限制,并且在合并dex档案时您可能会收到错误提示Error:方法引用数.dex文件中的值不能超过64K。

如果确实出现此错误,我们建议启用Multidex for Android。

启用Multidex

如果您的应用仅针对Android 21或更高版本(minSdkVersion),则默认情况下已启用multidex,并且您不需要multidex支持库。

但是,如果您的minSdkVersion设置为20或更低,则必须使用multidex支持库并对应用程序项目进行以下修改:

打开/android/app/build.gradle文件。在依赖项下添加multidex模块,并在defaultConfig中启用它:

android {
    defaultConfig {
        // ...
        minSdkVersion 16
        targetSdkVersion 28
        //add this
        multiDexEnabled true
    }
}

dependencies {
	//add this
  implementation 'com.android.support:multidex:1.0.3'
}

请访问Android官方文档以了解更多信息。

iOS安装

在iOS上使用FlutterFire之前,必须首先使用iOS应用程序连接到Firebase项目。

生成Firebase项目配置文件

在Firebase控制台上,为您的Firebase项目添加一个新的iOS应用或选择一个现有的iOS应用。 iOS bundle ID必须与您的本地项目bundle ID相匹配。使用Xcode打开ios / Runner.xcworkspace时,可在“常规”选项卡中找到bundle ID

下载Firebase应用程序的GoogleService-Info.plist文件。

安装Firebase配置文件

接下来,您必须使用Xcode将文件添加到项目中(通过文件系统手动添加不会将文件链接到项目)。

使用Xcode打开项目的ios / {projectName} .xcworkspace文件。在Xcode的左侧项目导航中,右键单击Runner,然后选择“添加文件”,

选择您下载的GoogleService-Info.plist文件,并确保启用了“Copy items if needed”复选框.

初始化FlutterFire

在使用任何Firebase服务之前,需要先初始化FlutterFire(您可以将这一过程视为FlutterFire“引导”本身)。初始化步骤是异步的,这意味着您需要防止任何FlutterFire相关的使用,直到初始化完成。

安装

在使用任何Firebase服务之前,您必须首先安装firebase_core插件,该插件负责将您的应用程序连接到Firebase。将插件添加到您的pubspec.yaml文件中:

dependencies:
  flutter:
    sdk: flutter
  //add this
  firebase_core: "0.5.3"

因为firebase_core只提供了几个基本的功能,所以一般情况下我们都需要其他插件.如果使用firebase的其他插件,可以不引入firebase_core。引入其他插件会自动引入firebase_core,例如firebase_messaging.

初始化

要初始化FlutterFire,请在Firebase类上调用initializeApp方法:

await Firebase.initializeApp();

该方法是异步的,并且返回Future,因此您需要确保它已完成,然后才能使用firebase相关功能。

示例项目显示了如何使用StatefulWidget实现此目的。

缩短iOS构建时间

目前,Firestore iOS SDK依赖于大约50万行的大多数C ++代码,这些代码可能需要5分钟以上才能在XCode中构建。为了显着减少构建时间,您可以通过在Flutter项目中的ios / Podfile中添加1行来使用预编译版本。

pod'FirebaseFirestore',: git =>'github.com/invertase/f…',: tag =>'6.26.0'

在目标Podfile中的目标“ Runner”中添加此行,例如:

# ...
target 'Runner' do
  pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '6.26.0'
# ...
end

此外,请确保已将cocoapods升级到1.9.1或更高版本:gem install cocoapods

有关更多信息,请参见以下问题:github.com/FirebaseExt…