FlutterでGoogle認証するためのメモ書きです。メソッドがバージョンによって変わっているのか、ネットの情報どおりに書いても動かなかったケースがありました。今回のケースでは
- ダメなケース→ await googleLogin.signIn();
- OKなケース→ await GoogleSignIn().signIn();
という記述ですね。前者だと認証がいつまで経っても終わりませんでした。Flutterに最近手をつけ始めてますが、Gradle,Dart, Flutterなどのバージョン調整がいろいろめんどくさいですね。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//ログインボタンを押した場合 | |
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(); | |
})); | |
} |
0 件のコメント:
コメントを投稿