[Android] Firebase Login with Email ง่ายๆตาม Android Studio ด้วย 8 ขั้นตอน
สร้าง project ขึ้นมา คลิกรูปคนตรงมุมบนขวา กด Sign In
ทำการ login จากนั้น คลิก Tools->Firebase->Authentication->Email and password authentication
จะมี 8 ขั้นตอนในการทำ คลิก Connect to Firebase
พิมพ์ชื่อ project เลือก Thailand คลิก Connect to Firebase
คลิก Add Firebase Authentication to your app -> Accept Changes
ในขั้นตอน 3–6 ให้ copy code มาวางแล้วทำการ import
ส่วนของ import
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
ส่วนของ MainActivity.java
ไปที่ https://console.firebase.google.com/ เลือก project ที่สร้าง
คลิก Authentication->วิธีการลงชื่อเข้าใช้->อีเมล/รหัสผ่าน
คลิก เปิดใช้->บันทึก
*** ถ้า build.gradle ในส่วนของ com.google.gms:google-services เป็น 4.1.0 ให้เปลี่ยนเป็น 4.2.0
classpath 'com.google.gms:google-services:4.2.0'
สั่งรัน
ตรวจสอบ ผู้ใช้ จะพบ gg@gmail.com ที่สร้างไว้
สรุป
หลังจากปิดเปิดแอปใหม่จะพบว่ามีข้อความขึ้นว่า Authentication fail เพราะว่า email นี้ได้ถูกสร้างขึ้นแล้วจากการเรียก method ชื่อ createAccount() และเพราะสร้าง email เดิมก็เลยซ้ำ ทำให้ fail
ถ้าลอง comment ทั้งสอง method ออก แล้วรันใหม่
ก็พบว่ายังแสดง email ที่ login อยู่ เพราะตอนนี้การ login นั้นยังค้างอยู่ เราจึงสามารถนำ FirebaseUser ไปใช้ได้เลย ไม่ว่าจะเป็น getEmail(), getUid() ถ้าหากเรา login ด้วย google หรือ facebook (จะสอนในบทต่อไป) ก็จะใช้ getPhotoUrl(), getDisplayName() ได้ด้วย ทำให้ไม่ออกมาเป็น null แบบนี้
และถ้าต้องการ logout ก็เพียงใช้
FirebaseAuth.getInstance().signOut();
ก็จะทำให้ user นั้นไม่ค้างอยู่
สำหรับการสร้าง email ต้องมี password มากกว่า 6 ตัวอักษรขึ้นไป ตัวอย่างนี้ใช้ “123456”