新しいプロジェクトを作成したときにハマってしまいました。
対処法のメモです。
エラーメッセージ
sign_in_failed com.google.android.gms.common.api.ApiException: 10
sign_in_failed com.google.android.gms.common.api.ApiException: 12500
- 10の場合
Firebase フィンガープリント - 12500の場合
GCP OAuth 同意画面
Firebase サポートメール
GCP API 有効
Firebase フィンガープリント
ApiException: 10 の場合
フィンガープリントとは開発PCで実行すると出力されるハッシュ値(SHA1)のことです。
他人が勝手にAPKを差替えられないようにするのが目的です(たぶん)
Step1 構成ファイルをアプリに同梱

- Firebase にログインします。
https://console.firebase.google.com/u/0/ - プロジェクトを作成します。
- アプリを追加します。
- 以下の構成ファイルをダウンロードします。
google-services.json (android)
GoogleService-Info.plist (ios) - 構成ファイルを Flutter プロジェクトにコピーします。
android
app
build.gradle
google-service.json
ios
Flutter
Runner
AppDelegate.swift
GoogleService-Info.plist
Info.plist
Step2 ハッシュ値をFirebaseに登録

cd android
gradlew signingReport (または gradle signingReport)
- androidフォルダでコマンドを実行します。
成功するといっぱい出てきますが SHA1 は同じ値です。 - FIrebaseのアプリにSHA1を登録します。
- 注:別のPCでビルドすると、そのPCのハッシュ登録が必要になります。
GCP OAuth 同意画面
- GCP (Google Cloud Platform) にログインします。
- Firebaseで作成したプロジェクトがGCPにも作成されているので、それを選びます。
- OAuth同意画面の「アプリを編集」で編集します。
Firebase サポートメール
- プロジェクトの設定(SHA1を設定したページ)でサポートメールを設定します。
この情報はネットで検索すると出てきました。私は登録済なので未検証です。
GCP API 有効
- GCPでAPIの有効無効を確認します。
私の場合は Google Drive API を使うのでそれを有効にします。
ちなみに無効にしてもできました。ダメ元です。
あとがき
新しいプロジェクトを作成したときにハマりました。フィンガープリントは知っていましたが、OAuth 同意画面はいつのまにかやっていたのでしょう。AWS も GCP もこの手のごにょごにょが多いですね。