この記事の続き
参照先のページに別のページのリンクが書いてあり、少し紛らわしかった。ようやく一段落。
Googleログインを有効にする
メールログインと同様にGoogleログインを有効にする。その後、必要に応じて設定値を変更して確定する。Webのシークレットは実装時に利用する。
AndroidアプリのSHA1をFirebaseに登録する
SHA1の確認方法はこちらのページを参考にする。
SHA1とSHA256の2つを取得できるが、登録するのはSHA1。SHA256の方が安全そうという謎の理由でSHA256を登録していて、それが原因で謎のエラーに悩んだりした。
コード周り
メールログインのときはSignInScreenにproviderを引数に設定していたが、それをやめてアプリ起動時にFirebaseUIAuth.configureProviders
を呼び出すようにした。
Future<void> main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); FirebaseUIAuth.configureProviders( [ EmailAuthProvider(), GoogleProvider( clientId: "${WebのクライアントID}", ), ], ); runApp(const MyApp()); }
SignInScreen自体は以前の実装とさほど変わらず。
// MaterialAppの引数などに設定する SignInScreen( actions: [ AuthStateChangeAction<SignedIn>( (context, state) { }, ), VerifyPhoneAction( (context, _) { }, ), AuthStateChangeAction<UserCreated>( (context, state) { }, ), AuthStateChangeAction<CredentialLinked>( (context, state) { }, ), AuthStateChangeAction<MFARequired>( (context, state) async { }, ), ], ),