Google มุ่งมั่นที่จะพัฒนาความเท่าเทียมทางเชื้อชาติสำหรับชุมชนคนผิวดำ มาดูกันว่า
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

รับรองความถูกต้องกับ Firebase โดยใช้บัญชีที่ใช้รหัสผ่านบน Android

คุณสามารถใช้การรับรองความถูกต้องของ Firebase เพื่อให้ผู้ใช้ของคุณรับรองความถูกต้องกับ Firebase โดยใช้ที่อยู่อีเมลและรหัสผ่านของพวกเขาและเพื่อจัดการบัญชีที่ใช้รหัสผ่านของแอป

ก่อนที่จะเริ่ม

  1. หากคุณยังไม่ได้ เพิ่ม Firebase ให้กับโครงการ Android ของคุณ
  2. ในโครงการระดับ build.gradle ไฟล์ให้แน่ใจว่าจะรวมถึงพื้นที่เก็บข้อมูล Maven ของ Google ในทั้งสองของคุณ buildscript และ allprojects ส่วน
  3. เพิ่มการพึ่งพาสำหรับไลบรารี Android การรับรองความถูกต้อง Firebase ให้กับโมดูล Gradle ของคุณ (ระดับแอป) ไฟล์ (มักจะเป็น app/build.gradle ):

     implementation 'com.google.firebase:firebase-auth:19.3.2'
     
  4. หากคุณยังไม่ได้เชื่อมต่อแอปของคุณกับโครงการ Firebase ให้ทำจาก คอนโซล Firebase
  5. เปิดใช้งานการลงชื่อเข้าใช้อีเมล / รหัสผ่าน:
    1. ใน คอนโซล Firebase ให้เปิดส่วน Auth
    2. บนแท็บ วิธีลงชื่อเข้า ใช้ให้เปิดใช้ วิธีลงชื่อเข้า ใช้ อีเมล / รหัสผ่าน แล้วคลิก บันทึก

สร้างบัญชีที่ใช้รหัสผ่าน

ในการสร้างบัญชีผู้ใช้ใหม่ด้วยรหัสผ่านให้ทำตามขั้นตอนต่อไปนี้ในกิจกรรมการลงชื่อเข้าใช้ของแอปของคุณ:

  1. ในวิธีการ onCreate ของกิจกรรมการสมัครใช้งานรับอินสแตนซ์ที่แชร์ของวัตถุ FirebaseAuth :

    ชวา

    private FirebaseAuth mAuth;
    // ...
    // Initialize Firebase Auth
    mAuth = FirebaseAuth.getInstance();

    Kotlin + KTX

    private lateinit var auth: FirebaseAuth
    // ...
    // Initialize Firebase Auth
    auth = Firebase.auth
  2. เมื่อเริ่มต้นกิจกรรมของคุณให้ตรวจสอบว่าผู้ใช้ลงชื่อเข้าใช้อยู่หรือไม่:

    ชวา

    @Override
    public void onStart() {
        super.onStart();
        // Check if user is signed in (non-null) and update UI accordingly.
        FirebaseUser currentUser = mAuth.getCurrentUser();
        updateUI(currentUser);
    }

    Kotlin + KTX

    public override fun onStart() {
        super.onStart()
        // Check if user is signed in (non-null) and update UI accordingly.
        val currentUser = auth.currentUser
        updateUI(currentUser)
    }
  3. เมื่อผู้ใช้ใหม่ลงทะเบียนโดยใช้แบบฟอร์มลงทะเบียนแอพของคุณให้ทำตามขั้นตอนการตรวจสอบบัญชีใหม่ที่แอพของคุณต้องการเช่นการตรวจสอบว่ารหัสผ่านของบัญชีใหม่นั้นพิมพ์อย่างถูกต้องและตรงตามข้อกำหนดด้านความซับซ้อนของคุณ
  4. สร้างบัญชีใหม่โดยส่งที่อยู่อีเมลและรหัสผ่านของผู้ใช้ใหม่ไปที่ createUserWithEmailAndPassword :

    ชวา

    mAuth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        // Sign in success, update UI with the signed-in user's information
                        Log.d(TAG, "createUserWithEmail:success");
                        FirebaseUser user = mAuth.getCurrentUser();
                        updateUI(user);
                    } else {
                        // If sign in fails, display a message to the user.
                        Log.w(TAG, "createUserWithEmail:failure", task.getException());
                        Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
                                Toast.LENGTH_SHORT).show();
                        updateUI(null);
                    }
    
                    // ...
                }
            });

    Kotlin + KTX

    auth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    // Sign in success, update UI with the signed-in user's information
                    Log.d(TAG, "createUserWithEmail:success")
                    val user = auth.currentUser
                    updateUI(user)
                } else {
                    // If sign in fails, display a message to the user.
                    Log.w(TAG, "createUserWithEmail:failure", task.exception)
                    Toast.makeText(baseContext, "Authentication failed.",
                            Toast.LENGTH_SHORT).show()
                    updateUI(null)
                }
    
                // ...
            }
    หากบัญชีใหม่ถูกสร้างขึ้นผู้ใช้จะถูกลงชื่อเข้าใช้ด้วยในการโทรกลับคุณสามารถใช้วิธี getCurrentUser เพื่อรับข้อมูลบัญชีของผู้ใช้

ลงชื่อเข้าใช้ด้วยอีเมลและรหัสผ่าน

ขั้นตอนในการลงชื่อเข้าใช้ด้วยรหัสผ่านจะคล้ายกับขั้นตอนในการสร้างบัญชีใหม่ ในกิจกรรมการลงชื่อเข้าใช้ของแอปให้ทำดังนี้:

  1. ในวิธีการ onCreate ของกิจกรรมการลงชื่อเข้าใช้รับอินสแตนซ์ที่แชร์ของวัตถุ FirebaseAuth :

    ชวา

    private FirebaseAuth mAuth;
    // ...
    // Initialize Firebase Auth
    mAuth = FirebaseAuth.getInstance();

    Kotlin + KTX

    private lateinit var auth: FirebaseAuth
    // ...
    // Initialize Firebase Auth
    auth = Firebase.auth
  2. เมื่อเริ่มต้นกิจกรรมของคุณให้ตรวจสอบว่าผู้ใช้ลงชื่อเข้าใช้อยู่หรือไม่:

    ชวา

    @Override
    public void onStart() {
        super.onStart();
        // Check if user is signed in (non-null) and update UI accordingly.
        FirebaseUser currentUser = mAuth.getCurrentUser();
        updateUI(currentUser);
    }

    Kotlin + KTX

    public override fun onStart() {
        super.onStart()
        // Check if user is signed in (non-null) and update UI accordingly.
        val currentUser = auth.currentUser
        updateUI(currentUser)
    }
  3. เมื่อผู้ใช้ลงชื่อเข้าใช้แอปของคุณให้ส่งที่อยู่อีเมลและรหัสผ่านของผู้ใช้เพื่อ signInWithEmailAndPassword เข้าใช้ signInWithEmailAndPassword :

    ชวา

    mAuth.signInWithEmailAndPassword(email, password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        // Sign in success, update UI with the signed-in user's information
                        Log.d(TAG, "signInWithEmail:success");
                        FirebaseUser user = mAuth.getCurrentUser();
                        updateUI(user);
                    } else {
                        // If sign in fails, display a message to the user.
                        Log.w(TAG, "signInWithEmail:failure", task.getException());
                        Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
                                Toast.LENGTH_SHORT).show();
                        updateUI(null);
                        // ...
                    }
    
                    // ...
                }
            });

    Kotlin + KTX

    auth.signInWithEmailAndPassword(email, password)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    // Sign in success, update UI with the signed-in user's information
                    Log.d(TAG, "signInWithEmail:success")
                    val user = auth.currentUser
                    updateUI(user)
                } else {
                    // If sign in fails, display a message to the user.
                    Log.w(TAG, "signInWithEmail:failure", task.exception)
                    Toast.makeText(baseContext, "Authentication failed.",
                            Toast.LENGTH_SHORT).show()
                    updateUI(null)
                    // ...
                }
    
                // ...
            }
    หากลงชื่อเข้าใช้สำเร็จคุณสามารถใช้ FirebaseUser ส่งคืนเพื่อดำเนินการต่อ

ขั้นตอนถัดไป

หลังจากผู้ใช้ลงชื่อเข้าใช้เป็นครั้งแรกบัญชีผู้ใช้ใหม่จะถูกสร้างและเชื่อมโยงกับข้อมูลรับรองนั่นคือชื่อผู้ใช้และรหัสผ่านหมายเลขโทรศัพท์หรือข้อมูลผู้ให้บริการรับรองความถูกต้อง - ผู้ใช้ที่ลงชื่อเข้าใช้ด้วย บัญชีใหม่นี้ถูกจัดเก็บเป็นส่วนหนึ่งของโครงการ Firebase ของคุณและสามารถใช้เพื่อระบุผู้ใช้ในทุกแอปในโครงการของคุณโดยไม่คำนึงว่าผู้ใช้ลงชื่อเข้าใช้อย่างไร

  • ในแอพของคุณคุณสามารถรับข้อมูลโปรไฟล์พื้นฐานของผู้ใช้จากออบเจ็กต์ FirebaseUser ดู จัดการผู้ใช้

  • ใน Firebase Realtime Database และ กฎความปลอดภัย Cloud Storage คุณสามารถรับ ID ผู้ใช้เฉพาะของผู้ใช้ที่ลงชื่อเข้าใช้จากตัวแปร auth และใช้เพื่อควบคุมข้อมูลที่ผู้ใช้สามารถเข้าถึงได้

คุณสามารถอนุญาตให้ผู้ใช้ลงชื่อเข้าใช้แอปของคุณโดยใช้ผู้ให้บริการการตรวจสอบความถูกต้องหลายคนโดย เชื่อมโยงข้อมูลรับรองผู้ให้บริการรับรองความถูกต้องกับบัญชีผู้ใช้ที่มีอยู่

ในการออกจากระบบผู้ใช้โทร signOut :

ชวา

FirebaseAuth.getInstance().signOut();

Kotlin + KTX

Firebase.auth.signOut()