Flutter集成Firebaseandroid
FlutterFire是一套Flutter插件,可将Flutter应用程序链接到Firebase。ios
首先要建立一个Firebase项目git
这一步跟这Firebase的流程走就能够github
在Android上使用FlutterFire以前,必须首先使用Android应用程序链接到Firebase项目。json
在Firebase控制台上,为您的Firebase项目添加一个新的Android应用程序或选择一个现有的Android应用程序。markdown
注册您的Android应用后,请从Firebase控制台下载配置文件(该文件称为google-services.json)。将此文件添加到Flutter项目中的android / app目录中。app
为了容许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'
复制代码
因为某些Firebase SDK(特别是Firestore)中的类不少,它可能使您超出Android构建系统上64k方法的限制,而且在合并dex档案时您可能会收到错误提示Error:方法引用数.dex文件中的值不能超过64K。
若是确实出现此错误,咱们建议启用Multidex for Android。
若是您的应用仅针对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上使用FlutterFire以前,必须首先使用iOS应用程序链接到Firebase项目。
在Firebase控制台上,为您的Firebase项目添加一个新的iOS应用或选择一个现有的iOS应用。 iOS bundle ID
必须与您的本地项目bundle ID
相匹配。使用Xcode打开ios / Runner.xcworkspace时,可在“常规”选项卡中找到bundle ID
。
下载Firebase应用程序的GoogleService-Info.plist文件。
接下来,您必须使用Xcode将文件添加到项目中(经过文件系统手动添加不会将文件连接到项目)。
使用Xcode打开项目的ios / {projectName} .xcworkspace文件。在Xcode的左侧项目导航中,右键单击Runner,而后选择“添加文件”,
选择您下载的GoogleService-Info.plist文件,并确保启用了“Copy items if needed”复选框.
在使用任何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实现此目的。
目前,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…