【Authentication】Google認証をしようとしたらPlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null, null)と怒られた【開発備忘録】
エラーメッセージ
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に複数のフィンガープリントを登録できるのはそういうことです!!