【Authentication】Google認証をしようとしたらPlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null, null)と怒られた【開発備忘録】

Flutter GCP 開発備忘録

エラーメッセージ

ERROR: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null, null)

エラーの原因

FirebaseにSHA-1のフィンガープリントを登録していないことが原因です。

エラー文中にApiException: 10というのがあればこの原因で間違いありません。

フィンガープリントの取得方法

以下のコマンドをターミナルで実行することで取得が可能です。

$cd android
$./gradlew signingReport

もし、./gradlew signingReportでエラーが出た場合は、ほぼ間違いなくJavaの問題なので各自解決してください。

Javaが入っていなければ入れる。Javaのバージョンの相性が良くなければ、相性の良さそうなものを試す。。。
私の場合、64bit対応のJavaが必要と言われて最新のJDK25を入れたら「まだ対応してない」と怒られたので、JDK17に切り替えたら行けました。メンドクサカッタ

とにもかくにも、上記のコマンドで取得したSHA-1のフィンガープリントをFirebaseに貼っ付ければOKです。

フィンガープリントが大量に出力される場合があるかもしれませんが、その際にはgoogle_sign_in_android:signingReportと書かれた項目のフィンガープリントを用いれば問題ないです。

同じプロジェクトでも開発機種が異なれば別のフィンガープリントが必要

同じプロジェクトで全く同じコードであっても、開発しているデバイスが異なる場合は、デバイスごとにフィンガープリントを取得してFirebaseに登録する必要があります。
私はこれを知らなかったためにつまずきました。。。

Firebaseに複数のフィンガープリントを登録できるのはそういうことです!!