FirebaseでEmail/Password認証(Android編)
概要
Androidアプリを使ってFirebaseのEmail/Password認証を試してみました。
Androidアプリは、Android Studioを使って作成しました。
- Firebaseアプリを作成する
- Firebase用Androidアプリを作成する
- データを書き込む
Firebaseアプリを作成する
- Firebase管理画面で、Firebaseアプリを作成します。
- Email/Password認証を有効にします
Email/Password認証を有効にします
アプリ管理画面において、左側のメニューからLogin&Authを選択します。Email&PasswordタブのEnable Email &Password Authenticationにチェックを入れます。
ユーザを作成します
画面の下にある「Add User」ボタンを押下して、ユーザを作成します。作成したユーザはRegistered Usersに表示されます。
アクセスルールを追加します。
画面左側のSecurity & Rulesタブを押下して、アプリのコンテンツアクセスルールを編集します。アプリ作成時の認証は誰でも読み書き可能。
{ "rules": { ".read": true, ".write": true } }
これを以下のように変更します。
{ "rules": { ".read": "auth !== null", ".write": "auth !== null" } }
Firebase用Androidアプリを作成する
Android Quickstart - Firebaseを参考にしてAndroidアプリを作成します。
- 新規プロジェクトを作成する
- Gradleファイルを編集します
- permissionを追加します
新規プロジェクトを作成する
Android StudioでFile-New Projectから新規プロジェクトを作成します。Minimum SDKは、デフォルトのAPI 15にしておきます。Activityのタイプは何でも可です。
Gradleファイルを編集します
Gradleファイル(build.gradle)を編集します。dependenciesに記述したFirebaseクライアントライブラリが追加されます。
android { packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE-FIREBASE.txt' exclude 'META-INF/NOTICE' } ... } dependencies { ... compile 'com.firebase:firebase-client-android:2.0.3+' }
permissionを追加します
AndroidManifest.xmlにインターネットアクセス用permissionを追加します。
データを書き込む
onCreateに以下のデータを書き込み処理を追加します。
Firebase.setAndroidContext(this); Firebase firebaseRef = new Firebase(アプリのURL); Firebase child = firebaseRef.child(パス); Mapdata = new HashMap (); data.put("content", "Hello"); child.setValue(data, this);
認証した場合
データをセットできます。認証情報はクライアントライブラリが保持するため、次回以降は認証は不要です。
firebaseRef.authWithPassword(Eメールアドレス, パスワード, this);
認証していない場合
認証しないかあるいは認証を解除すると、Permissionエラーになります。
firebaseRef.unauth();