Authenticationが便利だと良く聞くんですが、特に使う機会がなさそうなので
ログイン機能をまるっと投げれる便利さを体験したい!ってことで試してみました
今回はEmailでの登録、ユーザーのID取得を行いました。
それと、試しているときにエラーで止まった時の対応 + あったら便利そうなのをおまけに書いときました。
Authenticationに必要なpluginを追加
Authenticationを使うときに必要なpluginをpubspec.yaml に追加
使うpluginはこちら https://pub.dev/packages/firebase_auth
dependencies:
firebase_auth: ^0.15.1
忘れずにpackage getしてください
flutter package get
Firebase Consoleでログイン方法の設定
firebaseConsoleを開いて自分の使いたいログイン方法を有効にしてください。
有効になっているものはステータスで表示されます。
GoogleやTwitterなどでログイン機能を作る場合はクライアントIDやAPIキーなどが必要な物も有りました。
Firebase Consoleでユーザー登録(Email&Password)
ユーザータブをクリックすると登録されているアカウントがリストになっていて検索ができます。
このページ右側にユーザー追加のボタンがあるので選択するとconsole画面からユーザー登録が行えます。
プログラムでユーザー登録(Email&Password)
Future registration(String email, String password) async {
final firebaseAuth = FirebaseAuth.instance;
await firebaseAuth.createUserWithEmailAndPassword(
email: email, password: password);
}
こんなに雑でも問題なく動いたのでびっくり
このままだとエラーの対処ができてないので実際に仕事で使う場合はもう少し必要ですが動きは確認できたので良しとします。
プログラムでユーザー情報の取得
こちらもエラー処理は全くしてません。
Future<FirebaseUser> signIn(String email, String password) async {
final firebaseAuth = FirebaseAuth.instance;
final FirebaseUser user = await firebaseAuth.signInWithEmailAndPassword(
email: email, password: password);
print('ユーザーID:$user');
return user;
}
おまけ
良くみるボタンを簡単に使えるpluginを発見しました
https://pub.dev/packages/flutter_signin_button#-readme-tab-
躓いたエラー
FirebaseAuthPlugin.java:9: エラー: シンボルを見つけられません
import androidx.annotation.NonNull;
こんなエラーが起きた場合はこちらの参考にすると良いと思います。
https://www.virment.com/how-to-solve-flutter-firebase_auth-error/