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…

相關文章
相關標籤/搜索