Flutter Firebase - FlutterFire基础配置

Flutter集成Firebaseandroid

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

首先要建立一个Firebase项目git

这一步跟这Firebase的流程走就能够github

Android安装

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

生成Firebase项目配置文件

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

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

安装Firebase配置文件

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

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

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

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

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…

相关文章
相关标签/搜索