top of page

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


概要


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でサインインできました。

最新記事

すべて表示

【Flutter/Dart】TextFieldで文字列をフォーマットする

やりたいこと TextFieldで入力フォームを作りたい。 例えば入力内容が金額の場合、3桁区切りで頭に¥を付けた表記にしたい。 ただしユーザにこれらを入力させるのではなく、ユーザはあくまで数字を入力するだけで、アプリ側で自動でフォーマットしたい。 方法...

【Flutter/dart】late変数が初期化されたかのチェック

やりたいこと 初期値さえ決まればあとは不変な変数がある ただし、コンストラクタ起動時にはまだ決定できない このような変数について late finalで変数を定義 (何らかのタイミングで)初期化されたかどうかをチェックし、されていなければ値を入れる(チェックしないとfina...

Comentários


カテゴリ

あなたの買い物をサポートする
アプリ Shop Plan

iphone6.5p2.png

​いつ何を買うかの計画を立てられるアプリです。

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png

靴を大切にしよう!靴管理アプリ SHOES_KEEP

納品:iPhone6.5①.png

靴の履いた回数、お手入れ回数を管理するアプリです。

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png

「後で読む」を忘れないアプリ ArticleReminder

気になった​Webサイトを登録し、指定時刻にリマインダを送れるアプリです

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png
bottom of page