こんばんは。お元気ですか。
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、置換しないといけないところはありません。
本番実行用のフィンガープリント
本番実行用のフィンガープリントは以下のコマンドで確認します。
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のプロジェクトに紐づけられたアプリ名が表示されるので[フィンガープリントを追加]をクリックします。

そうしましたら、以下の画面から、先ほど確認したフィンガープリントをデバッグ実行用、本番実行用と一行ずつ入力して保存することでエラーを回避することができるのでやってみてください。
