| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

FlutterFire

提供: MyMemoWiki
2021年10月17日 (日) 05:33時点におけるPiroto (トーク | 投稿記録)による版 (→‎GoogleService-Info.plist 追加)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

| Dart | Flutter | ブログカテゴリ(Flutter) | Android Studio | Flutter macos | Flutter 手順 | Flutter Riverpod |

FlutterFire

Firebase CLI


  1. $ npm install -g firebase-tools

Install


  • Migration
  • Firebase のサービスを利用する前に、まず firebase_core プラグインをインストールする必要があります。
  • このプラグインは、アプリケーションを Firebase に接続する役割を果たします。
  • このプラグインをpubspec.yamlファイルに追加します。

pubspec.yaml

  1. dependencies:
  2. flutter:
  3. sdk: flutter
  4. firebase_core: "^1.3.0"
  1. $ flutter pub get

Platform セットアップ


Web


Android


build.gradle

  • android/build.gradle
  1. buildscript {
  2. dependencies {
  3. // ... other dependencies
  4. classpath 'com.google.gms:google-services:4.3.8'
  5. }
  6. }
  • android/app/build.gradle
  1. apply plugin: 'com.google.gms.google-services'
署名

  • https://developers.google.com/android/guides/client-auth
  • Java に付属の keytool ユーティリティを実行して、証明書の SHA-1 フィンガープリントを取得します。
  • リリース証明書のフィンガープリントとデバッグ証明書のフィンガープリントの両方を取得する必要があります。
    • リリース証明書のフィンガープリントを取得
  1. keytool -list -v -alias <your-key-name> -keystore <path-to-production-keystore>
    • デバッグ証明書のフィンガープリントを取得
    • デフォルトパスワードは android
  1. keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
"google-services.json" file to the project?

  • https://firebase.google.com/docs/android/setup?hl=ja
  • Firebase Android 構成ファイルをアプリに追加します。
  • google-services.json のダウンロード ボタン をクリックして、Firebase Android 構成ファイル(google-services.json)を取得します。
  • 構成ファイルをアプリのモジュール(アプリレベル)ディレクトリに移動します。

iOS


https://firebase.google.com/docs/ios/setup

GoogleService-Info.plist 追加

  1. FirebaseでiOSアプリを登録
  2. FirebaseアプリのGoogleService-Info.plistファイルをダウンロード
  3. ios/Runner.xcworkspace をxcodeで開く
  4. Xcode内の左側のプロジェクト・ナビゲーションから「Runner」を右クリックし「Add files」を選択
  5. "Copy items if needed" を有効にして、GoogleService-Info.plistファイルを取り込む

Ios flutter fire.png

fatal error: module 'firebase_core' not found エラー

  1. Error output from Xcode build:
  2. ** BUILD FAILED **
  3.  
  4.  
  5. Xcode's output:
  6. /Users/hirotoyagi/Workspaces/flutter/tenarai_online/ios/Runner/GeneratedPluginRegistrant.m:10:9: fatal error: module 'firebase_core'
  7. not found
  8. @import firebase_core;
  1. $ flutter clean
  2. $ cd ios
  3. $ rm -rf Pods
  4. $ rm Podfile.lock Podfile
  5. $ flutter run
  • Podfile
  1. # Uncomment this line to define a global platform for your project
  2. platform :ios, '10.0'

macOS


  • XCodeで、open ./macos/Runner.xcworkspace/

Flutterfire google plist macos.png

  • GoogleService-Info.plist
    • ダウンロード
    • Runner右クリックからファイルを追加
    • 以下の画面のチェックをONにして追加

Firebase Emulator Suiteの一部を使用して、開発中のローカルマシンでfirebaseサービスをエミュレートしたい場合は、macOSアプリが安全でない接続でローカルネットワークサービスに接続することを許可する必要があります。安全でない接続を許可するには、アプリケーションのplistファイル内に以下を追加

  1. <key>NSAppTransportSecurity</key>
  2. <dict>
  3. <key>NSAllowsLocalNetworking</key>
  4. <true/>
  5. </dict>
  • 以下のエラーの場合
  1. [!] The FlutterFire plugin firebase_core for macOS requires a macOS deployment target of 10.12 or later.
    • macos/Podfileの修正
  1. platform :osx, '10.12'

Windows


  • C++によるデスクトップ開発のインストール

Flutter win.png

Web


Debug

MacのEdgeでFlutterのデバッグをする

初期化


  • Firebaseのサービスを使用する前に、FlutterFireを初期化する必要があります
  • 初期化ステップは非同期なので完了するまではFlutterFire関連の使用を禁止する必要があります。
  • FlutterFireを初期化するには、FirebaseクラスのinitializeAppメソッドを呼び出します

Authentication

Instration

Stableチャネルに切り替え

  1. $ flutter channel stable
  2. Switching to flutter channel 'stable'...
  3. git: From https://github.com/flutter/flutter
  4. git: + 2b9537c783...cc00e7e6bc dev -> origin/dev (forced update)
  5. git: * [new branch] dnfield-patch-1 -> origin/dnfield-patch-1
  6. git: * [new branch] flutter-2.4-candidate.1 -> origin/flutter-2.4-candidate.1
  7. git: * [new branch] flutter-2.4-candidate.2 -> origin/flutter-2.4-candidate.2
  8. git: * [new branch] flutter-2.4-candidate.3 -> origin/flutter-2.4-candidate.3
  9. git: * [new branch] flutter-2.4-candidate.4 -> origin/flutter-2.4-candidate.4
  10. git: * [new branch] flutter-2.4-candidate.5 -> origin/flutter-2.4-candidate.5
  11. git: 52e2ca38fc..2108fbd78d master -> origin/master
  12. git: + c8311f68be...f4d2c79a6a revert-85466-revert-85221-0624new -> origin/revert-85466-revert-85221-0624new (forced update)
  13. git: * [new branch] revert-86171-revert-83924-textTheme -> origin/revert-86171-revert-83924-textTheme
  14. git: * [new branch] revert-86198-deprecate_appbar_backwards_compatibility_flag -> origin/revert-86198-deprecate_appbar_backwards_compatibility_flag
  15. git: * [new branch] test -> origin/test
  16. git: * [new branch] test2 -> origin/test2
  17. git: * [new tag] 2.4.0-0.0.pre -> 2.4.0-0.0.pre
  18. git: * [new tag] 2.4.0-4.0.pre -> 2.4.0-4.0.pre
  19. git: Already on 'stable'
  20. git: Your branch is up to date with 'origin/stable'.
  21. Successfully switched to flutter channel 'stable'.
  22. To ensure that you're on the latest build from this channel, run 'flutter upgrade'
  • 確認
  1. $ flutter channel
  2. Flutter channels:
  3. master
  4. dev
  5. beta
  6. * stable

pubspec.yaml

  • firebase_authを追記
  1. dependencies:
  2. flutter:
  3. sdk: flutter
  4. firebase_core: "^1.4.0"
  5. firebase_auth: "^3.0.1"
  • 更新
  1. $ flutter pub get

Web


  • 追記
  1. <script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-auth.js"></script>

iOS/macOS


  • cd ios/macos
  • macos 例
  1. $ flutter clean
  2. $ rm -rf Pods
  3. $ rm Podfile
  4. $ rm Podfile.lock
  5. $ pod repo update
  6. $ flutter run -d macos
  • Podfile
  1. platform :osx, '10.12'

認証の永続性


Google

iOS

  • ios/Runner/info.plist
  1. <!-- Put me in the [my_project]/ios/Runner/Info.plist file -->
  2. <!-- Google Sign-in Section -->
  3. <key>CFBundleURLTypes</key>
  4. <array>
  5. <dict>
  6. <key>CFBundleTypeRole</key>
  7. <string>Editor</string>
  8. <key>CFBundleURLSchemes</key>
  9. <array>
  10. <!-- TODO Replace this value: -->
  11. <!-- Copied from GoogleService-Info.plist key REVERSED_CLIENT_ID -->
  12. <string>com.googleusercontent.apps.{GoogleService-Info.plist から、この部分を取得する}</string>
  13. </array>
  14. </dict>
  15. </array>
  16. <!-- End of the Google Sign-in Section -->