FirebaseのAuth機能について
- 機能の説明だけで5分使いそうなのでコードは全然出てきません…。
FirebaseのAuth機能について
- Auth系のtoken取得/管理をうまいことやってくれる機能
- 機能自体は以前からあった(はず)
- Twitter/GitHub/Facebook/Googleログインに対応
- 他のログインシステムも、ちょっと特殊な方法でいけるらしい?(未調査)
- Email+passwordの独自アカウントにも対応
- 匿名アカウントの発行も可能
- 各種アカウントの連携もOK
Firebase Auth管理画面(1)
- 連携したアカウントのプロバイダがどうなるかは調べてません……(謝罪)
Firebase Auth管理画面(2)
Firebase Auth管理画面(3)
管理できる情報
user.getUid(); // UID(ユーザー一意のID)
user.getDisplayName(); // 表示名
user.getEmail(); // E-mail
user.getPhotoUrl(); // プロフ用画像URL
user.getProviders(); // プロバイダ情報
user.isAnonymous(); // true:匿名ユーザー
- UIDは必ず生成される(コンソールでユーザーを特定するためにも使える)
- 表示名/E-mail/プロフ用画像URLは、連携元のSNS情報が引っ張られることもある
Email+password登録の場合
Auth.createUserWithEmailAndPassword(mailAddress, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// 登録成功
}
}
});
- ログインもほぼ同様(メソッドが違うのみ)
- パスワードとかの暗号化は、多分Google Play Service側でいい感じにやってくれる(はず)
注意点
- SNSログイン自体の仕組みは、それぞれのSDKで実装すること
- あくまでもFirebaseがやってくれることは、callbackされてからのtoken管理のみ
- E-mail+password方式の場合、確認メールが飛んでこない
- パスワード変更時は、登録したメールに変更URL情報が送られてくる
- E-mail+password方式のpasswordはデフォルトルール有り(6文字以上)
- Google Play Serviceがない端末(エミュ)では使えない
雑感
- あくまでもやってくれるのは「ユーザーの管理」
- 詳細なユーザー情報は、Databaseなどを使いましょう。
- メールアドレスの保管、プライバシーポリシーとか個人情報保護的に大丈夫かな…?
雑感(Qiitaスライドモード)
- ディスプレイのアス比に影響されるのがつらい…
- 自己紹介+会社紹介書いた状態で公開しづらい(気がする)
- むしろ人によってはいいことかもしれない
- ただしコードをキャプせずに載せられるので神
- そしてmarkdownで作れるので神