Flutterでアプリを開発しているときに、
Google認証でハマったので、いろいろ調べたときの備忘録(*´ω`*)
Google認証を有効にするためには、
証明書のSHA1が必要だけど、以下の制約がある
セキュリティ上の理由から、OAuth2.0クライアントIDの作成に使用されるパッケージ名と SHA-1フィンガープリントの組み合わせは、FirebaseとGoogle Cloudのすべてのプロジェクトで一意である必要があります。
つまり、Firebaseプロジェクトが開発用と本番用の2つがある場合、
パッケージ名とSHA1が同じものは登録できないっぽい
また、Firebase上でSHA証明書フィンガープリントを削除しても、
同じパッケージ名とSHA1は再登録できない。。。
GCP上のOAuth 2.0 クライアントIDの削除が必要
Firebaseコンソール上でSHA1を登録すると、
GCP側の「APIとサービス > 認証情報 > OAuth 2.0 クライアントID」に、
対応するクライアントが作成されるよう。
Firebaseコンソール上で削除しても、
こっちのOAuth 2.0 クライアントIDが残っているため、
再登録ができない状態になる。。
パッケージ名とSHA-1証明書フィンガープリントの値を見て、
削除後に、再読み込みをすると別のプロジェクトでも登録できるようになる。
外部プロジェクトのClientIDも利用できそうだけど。。。
このあたりの記事で、別プロジェクトのクライアントIDを利用できそうだけど、
Flutterでの実装方法がわからなかった。。またいつか挑戦したい。。
- Google Developers Japan: Android アプリで複数の Firebase プロジェクトを使う
- firebase webで別プロジェクトのAuthenticationを流用する
以上!! 地味にハマる。。。(´・ω・`)