Firebase Flutter

[Flutter]Firebase AuthenticationをAndroidで使用しようとするとAPIException

こんばんは。お元気ですか。

FlutterでFirebase Authenticationを使用したアプリをAndroid向けにビルドしてテストしていたところ、以下のようなAPIExceptionが発生しました。

com.google.android.gms.common.api.ApiException: 10

iOSでは正しく認証できていたので、なんだろうと思っていたのですが、調べてみたらなんのことはなく、Firebase のコンソールで設定が抜けていたことが原因でした。

解決方法

Androidでアプリを実行する前に、Firebaseのコンソールから、デバッグ・本番用のフィンガープリントを登録する必要があります。

フィンガープリント確認方法

デバッグ実行用のフィンガープリント

デバッグ実行用のフィンガープリントを以下のコマンドで確認します。

Macの場合

keytool -list -v \
-alias androiddebugkey -keystore ~/.android/debug.keystore

Windowsの場合

keytool -list -v \
-alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

デバッグの場合は、上記コマンドのまま入力すればOK、置換しないといけないところはありません。

なお、debug.keystore のパスワードは android です。

本番実行用のフィンガープリント(1つ目)

本番実行用のフィンガープリントは以下のコマンドで確認します。

keytool -list -v \-alias your-key-name -keystore path-to-production-keystore

your-key-nameは、任意の文字列でご自分のアプリ固有に自分がわかるように名付けた文字列でOK、path-to-production-keystoreは、署名かぎを格納している(格納したい)ファイルを指定します。

上記コマンドで、SHA1 or SHA-256のフィンガープリントが表示されるのでメモしておきます。

Firebaseコンソールに設定

デバッグ用、本番実行用のフィンガープリントを取得できたら、Firebaseコンソールを表示して[設定]に遷移します。

Firebaseのプロジェクトに紐づけられたアプリ名が表示されるので[フィンガープリントを追加]をクリックします。

そうしましたら、以下の画面から、先ほど確認したフィンガープリントをデバッグ実行用、本番実行用と一行ずつ入力して保存します。

 

本番実行用のフィンガープリント(2つ目)

Google Play Consoleの各アプリを選択し、設定→アプリの完全性の画面で表示される、アプリ署名鍵の証明書に表示されているSHA-1証明書のフィンガープリントorSHA-256証明書のフィンガープリンをも合わせてFirebaseのコンソールに設定しておく必要があります。

 

 

Flutterを学ぶなら世界最大級のオンライン学習サイトUdemyがおすすめ

Flutterを学ぶなら、世界最大級のオンライン学習サイトUdemy
がおすすめです。


通常ですと、各コース2万円程度するのですが、年がら年中割引セールスを行なっており、割引後価格はなんとおおむね1500円程度で受講することができます。
今すぐ受講しなくても、安い時に大量に買っておいて、あとでじっくり勉強するのがかしこいやり方だと思います。

-Firebase, Flutter

© 2024 かずのアプリときどきキャンプ飯 Powered by AFFINGER5