Loading [MathJax]/extensions/tex2jax.js

2021-10-31

FlutterでGoogle signinの画面が終わらない場合の処理

 FlutterのGoogle siginの処理で初歩的なミスで躓いたのでメモ書き。(なお、FlutterでのGoogle siginの処理のための各種処理の話はここでは省略します)

【症状】

  • Google signinの画面で、待機画面からずっと画面が遷移しない
  • スコープがemailの場合はうまくいくが、それ以外のスコープを指定するとダメ
【解決策】
  • Filebaseに登録しているアプリでの認証で、Fingerprintの情報はSHA-1だけでなく、SHA256も追加する。 
ということで無駄な時間を浪費しました。Google siginの処理の情報をネットでググると、SHA-1の情報を登録する記述はよく見るのですが、SHA256も必要だとは。。。
ちなみに、ログイン認証だけならSHA-1だけでOKです。今回は、Drive APIを扱おうとしてエラーがでました。



2021-10-24

Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is xxxx, expected version is yyyyy"

表題のようなエラーが出た場合、下記のように対応。

(1)gradle-wraper-propertiesの中身でgradleのバージョンを変更

  • distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip

(2)build.gradleでKotlinのバージョンを変更
  • ext.kotlin_version = '1.4.32'
なぜこれでいいのかは不明。Gradleのキャッシュがクリアされる??Stack overflowから得たネタです。

Reference





Firebaseを用いてGoogle認証をする(クライアント処理、Flutter,Dart編)

 FlutterでGoogle認証するためのメモ書きです。メソッドがバージョンによって変わっているのか、ネットの情報どおりに書いても動かなかったケースがありました。今回のケースでは

  • ダメなケース→ await googleLogin.signIn();
  • OKなケース→  await GoogleSignIn().signIn();

という記述ですね。前者だと認証がいつまで経っても終わりませんでした。Flutterに最近手をつけ始めてますが、Gradle,Dart, Flutterなどのバージョン調整がいろいろめんどくさいですね。

//ログインボタンを押した場合
onPressed: () async {
GoogleSignInAccount? signinAccount = await GoogleSignIn().signIn();
if (signinAccount == null) return;
GoogleSignInAuthentication auth = await signinAccount.authentication;
final OAuthCredential credential = GoogleAuthProvider.credential(
idToken: auth.idToken,
accessToken: auth.accessToken,
);
User? user =
(await FirebaseAuth.instance.signInWithCredential(credential)).user;
if (user != null) {
await Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (context) {
return LogoutPage(user);
}),
);
}
}
//ログアウトボタンを押した場合
onPressed: () async {
FirebaseAuth.instance.signOut();
//await googleLogin.signIn();
await GoogleSignIn().signIn();
await Navigator.of(context)
.pushReplacement(MaterialPageRoute(builder: (context) {
return LoginPage();
}));
}
view raw glogin.dart hosted with ❤ by GitHub