今日的程式碼 => GITHUB
我很喜歡這篇 CodeLab,我自己認為,如果這篇的內容看得懂那 Provider 基本上都會了。
如果想要看這篇的成品什麼樣子,歡迎去 官方 CodeLab 看。
這邊裡面有 IOS、Android、Web,下面會補充。
https://firebase.google.com/codelabs/firebase-get-to-know-flutter#3
GoogleService-Info.plist 到 ./ios/Runner./ios/Podfile  (這個看你需求,我自己是沒有加。)platfrom 的版本不可以太低(我自己是設定為 10.0)。pod 'Firebase/Analytics'
cd ios/
pod install
4.在 ./ios/Runner/AppDelegate.swift 加上這兩行(這個要加)
import UIKit
import Flutter
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)
  }
}
Target,可以看這個 ISSUE
開啟網路設定<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsLocalNetworking</key>
    <true/>
</dict>
google-services 放到 android/app/ 底下<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-firestore.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-firestore.js"></script>
  <script>
  // Your web app's Firebase configuration
  // For Firebase JS SDK v7.20.0 and later, measurementId is optional
  var firebaseConfig = {
  };
  // Initialize Firebase
  firebase.initializeApp(firebaseConfig);
  firebase.analytics();
</script>
參考來源 (FireStore 安全設定)[https://firebase.google.com/codelabs/firebase-get-to-know-flutter#7]
記得不要把這兩個檔案上傳到 GitLab or GitHub
# Google Services (e.g. APIs or Firebase)
google-services.json
GoogleService-Info.plist
Authentication 這個是 Firebase 中間的區塊,用來註冊登入、登出的元件。ApplicationProvider 用來處理 Authentication 元件裡面的邏輯。YesNoSelection 是否參加活動的區塊GuestBook 留言區方法用途
今天就先講到這邊,明天談談裡面的邏輯和其他的應用。
那我們鐵人賽 Day 15 見囉!!