[Flutter/dart] firebaseを開発環境と本番環境で分けてgoogle_sign_inを使用する(Android)
- M.R

- 2021年11月18日
- 読了時間: 1分
概要
firebaseを使用している場合、開発用の環境と本番用の環境を分けたいですよね。
Flutterの場合は基本的にはこの記事を見て設定してもらえばいいのですが、Androidのgoogle_sing_inで躓きました。
詳細
開発用と本番用2つのfirebaseプロジェクトを作成し、デバッグモードで起動します。すると、google_sign_inで以下のエラーが出ます。
Unhandled Exception: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null, null)
これは、google_sing_inでは(firebaseでは?)アプリケーションid(com.***みたいなやつ)とSHA1フィンガープリントの組み合わせは重複できないためです。
(詳細はここを参照してください。ただし、ここに書いてある対策をしてもエラーは治りませんでした。)
対応案
対応案としては、デバッグモードの時はアプリケーションidを変更しましょう。
/android/app/build.gradleに以下のように記述します。
defaultConfig {
applicationId "com.xxx.yyy"
・・・
}
buildTypes {
debug {
applicationIdSuffix ".debug"
}
・・・
}また、/android/app/src/debug/google-service.jsonも以下のように修正します。
"client": [
{
"client_info": {
・・・
"android_client_info": {
"package_name": "com.xxx.yyy.debug"
}
},ここを修正しないと
Execution failed for task ':app:processDebugGoogleServices'.
> No matching client found for package name 'com.xxx.yyy
というエラーが出ます。
以上の対策をすると無事googleでサインインできました。






コメント