paint-brush
Xác thực người dùng trong Android bằng Firebase (Java)từ tác giả@Temmarie
4,798 lượt đọc
4,798 lượt đọc

Xác thực người dùng trong Android bằng Firebase (Java)

từ tác giả Grace Tamara Ekunola26m2023/06/26
Read on Terminal Reader

dài quá đọc không nổi

Firebase là một nền tảng phát triển ứng dụng web và di động (Android hoặc iOS). Nó cung cấp một bộ công cụ và dịch vụ dựa trên đám mây do Google cung cấp. Trong hướng dẫn này, chúng ta sẽ xây dựng một ứng dụng Java Android đơn giản với Firebase để xác thực. Chúng tôi cũng sẽ giới thiệu cách sử dụng điện thoại Android của bạn làm trình giả lập.
featured image - Xác thực người dùng trong Android bằng Firebase (Java)
Grace Tamara Ekunola HackerNoon profile picture
0-item
1-item

Căn cứ hỏa lực là gì?


Firebase là một nền tảng phát triển ứng dụng web và thiết bị di động (Android hoặc iOS) cung cấp một bộ công cụ và dịch vụ dựa trên đám mây được cung cấp bởi Google . Nó là một dịch vụ phụ trợ ( BaaS ) cho phép các nhà phát triển xây dựng và triển khai các ứng dụng một cách nhanh chóng và hiệu quả, với các tính năng tích hợp để xác thực, cơ sở dữ liệu thời gian thực, lưu trữ đám mây, lưu trữ, v.v.


Trong hướng dẫn này, chúng ta sẽ xây dựng một ứng dụng Java Android đơn giản với Firebase để xác thực cho phép người dùng tạo tài khoản. đăng nhập và đăng xuất khỏi tài khoản. Chúng tôi cũng sẽ giới thiệu cách sử dụng điện thoại Android của bạn làm trình giả lập.


điều kiện tiên quyết

Trước khi bắt đầu hướng dẫn này, bạn nên biết những kiến thức cơ bản về phát triển ứng dụng Android.

Ngoài ra, bạn phải cài đặt phần mềm sau trên máy tính của mình:


  • Studio Android: Studio Android là IDE chính thức để phát triển ứng dụng Android. Nó có một bộ lớn các tính năng bao gồm chỉnh sửa mã, thiết kế bố cục, gỡ lỗi và trình giả lập để thử nghiệm.
  • Bộ công cụ phát triển Java (JDK): Trong hướng dẫn này, chúng ta sẽ sử dụng Java để xây dựng ứng dụng của chúng tôi. Android Studio yêu cầu JDK 8 trở lên.
  • SDK Android (Bộ công cụ phát triển phần mềm): SDK Android là tập hợp các công cụ và thư viện do Google cung cấp để phát triển ứng dụng Android.
  • Trình quản lý thiết bị ảo Android (AVD): Trình quản lý AVD là một công cụ do Android Studio cung cấp cho phép bạn tạo và quản lý các thiết bị ảo để thử nghiệm ứng dụng của mình.



Bước 1: Tạo một ứng dụng Android mới


  • Mở Android Studio và nhấp vào "Bắt đầu dự án Android Studio mới" trên màn hình chào mừng. Nếu không thấy tùy chọn này, bạn có thể vào File>New>New Project để tạo một dự án mới.
  • Tiếp theo, bạn sẽ chọn một mẫu cho dự án của mình. Android Studio cung cấp một số mẫu cho các loại ứng dụng khác nhau, chẳng hạn như "Hoạt động trống", "Hoạt động cơ bản", "Hoạt động toàn màn hình", v.v. Chọn "Hoạt động trống" và nhấp vào "Tiếp theo".


Lựa chọn mẫu dự án



  • Trong hộp thoại "Hoạt động trống", bạn có thể đặt cài đặt bổ sung cho ứng dụng. Bạn sẽ thấy lời nhắc định cấu hình các cài đặt khác nhau cho dự án của mình, chẳng hạn như tên dự án, tên gói, vị trí, SDK tối thiểu và ngôn ngữ. Điền thông tin cần thiết; trong trường hợp này, tên dự án là `FirebaseAuthApp" và nhấp vào "Hoàn tất".


  • Android Studio sẽ tạo một dự án mới với mẫu đã chọn và tạo các tệp và thư mục cần thiết. Có thể mất vài phút tùy thuộc vào hiệu suất và dung lượng hệ thống của bạn. Sau khi dự án được tạo, bạn sẽ thấy cấu trúc dự án trong tab Dự án, tệp bố cục Activity_main.xml trong trình chỉnh sửa bố cục và tệp mainactivity.java trong trình chỉnh sửa.
  • Nhấp vào `Build` trên thanh công cụ và chọn `Build Project` để tạo tệp APK chứa mã và tài nguyên ứng dụng của bạn. Lưu ý: Bạn có thể thấy "Dự án xây dựng lại" thay vì "Dự án xây dựng" nếu trước đó bạn đã kích hoạt một bản dựng hoặc nếu bạn đã thực hiện các thay đổi đối với dự án yêu cầu bản dựng đầy đủ.



Bước 2: Chạy và kiểm tra ứng dụng.

Để thực hiện việc này, bạn có thể kết nối thiết bị Android thực hoặc khởi động trình giả lập.


Để sử dụng trình giả lập, hãy làm theo các bước sau:

  • Nhấp vào Trình quản lý thiết bị trên thanh công cụ trên Android Studio để mở Trình quản lý thiết bị ảo Android (AVD).

Trình quản lý AVD


  • Tạo hoặc chọn một thiết bị ảo hiện có: Nếu bạn đã có một thiết bị ảo, hãy nhấp vào nút phát để khởi động trình giả lập trong AVD. Nếu bạn không có, hãy nhấp vào `Tạo thiết bị` để tạo trình giả lập hoặc thiết bị ảo mới. Chọn cấu hình phần cứng ưa thích của bạn (kích thước, độ phân giải, mật độ, v.v.), sau đó chọn tiếp theo. Sau đó, chọn một hình ảnh hệ thống và phiên bản Android. Hãy để nó tải xuống, sau đó thiết lập cài đặt trình giả lập.

Lựa chọn phần cứng


  • Khi thiết bị ảo được tạo, hãy nhấp vào nút phát để bắt đầu trình giả lập.
  • Khi trình giả lập đang chạy, hãy điều hướng đến thanh công cụ và nhấp vào nút `run` để chạy dự án của bạn trên trình giả lập. Nó sẽ tự động xây dựng và cài đặt ứng dụng trên trình giả lập. Bạn sẽ thấy `Xin chào thế giới` trên trình giả lập.

Giả lập



Để kết nối với thiết bị Android vật lý, hãy làm theo các bước sau:

Trên thiết bị Android của bạn (điện thoại hoặc máy tính bảng), hãy mở cài đặt và điều hướng đến `Giới thiệu về điện thoại`. Nhấp vào 'Thông tin phần mềm'.

  • Khi bạn mở nó, hãy cuộn xuống và tìm 'Số bản dựng." Chạm vào nó bảy lần (số có thể khác nhau tùy thuộc vào điện thoại; tôi đang sử dụng điện thoại Samsung) và nó sẽ bật chế độ phát triển.
  • Ở giai đoạn này, nó có thể hỏi mật khẩu của bạn; nhập nó, và bạn đã hoàn tất. Quay trở lại trang chủ cài đặt và bạn sẽ thấy các tùy chọn dành cho nhà phát triển.
  • Nhấp vào Tùy chọn nhà phát triển, sau đó bật Gỡ lỗi USB.
  • Kết nối thiết bị của bạn với máy tính bằng cách cắm thiết bị bằng dây USB. Bạn sẽ thấy một thông báo bật lên yêu cầu bạn cho phép gỡ lỗi USB từ máy tính.
  • Quay lại Android Studio của bạn và điều hướng đến trình quản lý AVD. Trên thanh công cụ, thiết bị của bạn sẽ hiển thị; chọn nó và chạy ứng dụng. Ứng dụng sẽ mở trên thiết bị Android của bạn sau vài phút và bạn sẽ thấy trang chủ `Xin chào thế giới`.

Lưu ý: Có nhiều cách khác để kết nối thiết bị vật lý của bạn với studio Android dưới dạng trình giả lập, chẳng hạn như gỡ lỗi không dây, nhưng trong hướng dẫn này, chúng tôi sẽ sử dụng gỡ lỗi USB.



Bước 3: Tạo giao diện người dùng

Trong bước này, chúng ta sẽ tạo giao diện người dùng và thiết kế. Điều hướng đến thư mục `app/res`; đây là nơi hầu hết các thay đổi giao diện người dùng sẽ diễn ra.

  • Thêm màu: Mở tệp `app/res/values/colors.xml` và thêm mã màu cho ứng dụng của chúng ta.
 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="slateblue"> #6F58C9</color> <color name="black">#FF000000</color> <color name="white"> #FFFFFFFF</color> </resources>


  • Thêm phông chữ: Nhấp chuột phải vào thư mục `res` và nhấp vào 'Mới', cuộn xuống 'Thư mục" và chọn `Thư mục phông chữ' từ trình đơn thả xuống. Hoặc tạo một thư mục mới và đặt tên cho nó là `phông chữ`. Tải xuống và sao chép này nét chữ vào thư mục phông chữ.
  • Tạo tài nguyên có thể vẽ : Chúng tôi sẽ tạo và thêm thông tin đăng nhập, hộp thoại, hộp nhập biểu mẫu, nút, hình nền và nội dung vectơ trên trang đăng nhập và đăng ký. Để làm điều này, hãy làm theo các bước dưới đây:
    • Thêm ảnh nền: Tải về và sao chép ảnh này vào thư mục drawable.
  • Thêm tệp tài nguyên có thể vẽ tùy chỉnh: Trong thư mục `res`, điều hướng đến thư mục 'drawable', nhấp chuột phải vào thư mục đó, nhấp vào 'Mới" và chọn 'Tệp tài nguyên có thể vẽ'. Lưu tên là 'custom_edittext' và thay đổi phần tử gốc từ bộ chọn sang hình dạng, sau đó nhấp vào 'OK'.
  • Mở tệp và thêm các dòng mã sau:
 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <stroke android:width="2dp" android:color="@color/slateblue"/> <corners android:radius="30dp"/> </shape>

    • Thêm hình ảnh vector:
      • Trong thư mục `res`, điều hướng đến thư mục 'drawable', nhấp chuột phải vào thư mục đó, nhấp vào 'Mới" và chọn 'Tài sản Vector'. Tại đây, chúng tôi sẽ tải xuống hình ảnh vector cho các biểu mẫu.
      • Nhấp vào clip art và nhập 'người' vào thanh tìm kiếm. Chọn nghệ thuật 'người', nhấp vào 'tiếp theo' và chọn 'kết thúc'.
      • Lặp lại các bước nhưng tải xuống hình ảnh vector cho 'khóa'.
      • Mở mã XML cho từng mã và thay đổi tông màu thành đỏ tía. 'android:tint="@color/slateblue"'.



Bước 4: Tạo hoạt động mới.

  • Điều hướng đến thư mục 'app/java/com.example.firebaseauthapp', nhấp chuột phải vào thư mục đó và chọn 'Mới'. Cuộn xuống và nhấp vào 'Hoạt động", sau đó chọn 'Hoạt động trống'.
  • Đổi tên hoạt động thành 'SignUpActivity', chọn hộp có nội dung 'Launcher Activity', rồi nhấp vào 'Finish'.

Hoạt động đăng ký

  • Lặp lại các bước ngoại trừ biến nó thành hoạt động của trình khởi chạy, lần này là cho 'Hoạt động đăng nhập'.

  • Mở tệp 'app/manifests/AndroidManifest.xml' và xóa bộ lọc ý định khỏi khối Hoạt động chính, đồng thời thay đổi 'android:exported="true"' thành 'android:exported="false"'. Nó sẽ giống như thế này:


 <activity android:name=".LoginActivity" android:exported="false" /> <activity android:name=".SignUpActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity" android:exported="false"> </activity>




Bước 5: Chỉnh sửa hoạt động la yout.

  • Mở tệp 'app/res/layout/activity_main.xml'.
  • Thêm đoạn mã sau:
 <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/wallbg" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:textColor="@color/slateblue" android:textSize="26sp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"/> </androidx.constraintlayout.widget.ConstraintLayout>


  • Mở tệp 'app/res/layout/activity_sign_up.xml'.
  • Thêm đoạn mã sau:
 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" android:background="@drawable/wallbg" tools:context=".SignUpActivity"> <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="30dp" app:cardCornerRadius="30dp" app:cardElevation="20dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_gravity="center_horizontal" android:padding="24dp" android:background="@drawable/custom_edittext"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Sign Up" android:textSize="36sp" android:textAlignment="center" android:textStyle="bold" android:textColor="@color/slateblue" /> <EditText android:layout_width="match_parent" android:layout_height="50dp" android:id="@+id/signup_email" android:background="@drawable/custom_edittext" android:layout_marginRight="40dp" android:layout_marginTop="40dp" android:padding="8dp" android:hint="Email" android:drawableLeft="@drawable/baseline_person_24" android:drawablePadding="8dp" android:textColor="@color/black" /> <EditText android:layout_width="match_parent" android:layout_height="50dp" android:id="@+id/signup_password" android:background="@drawable/custom_edittext" android:layout_marginRight="40dp" android:layout_marginTop="20dp" android:padding="8dp" android:hint="Password" android:drawableLeft="@drawable/baseline_lock_24" android:drawablePadding="8dp" android:textColor="@color/black" /> <Button android:layout_width="match_parent" android:layout_height="60dp" android:text="Sign Up" android:id="@+id/signup_button" android:textSize="18sp" android:layout_marginTop="30dp" android:backgroundTint="@color/slateblue" app:cornerRadius = "20dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/loginRedirectText" android:text="Already a user. Login" android:layout_gravity="center" android:padding="8dp" android:layout_marginTop="10dp" android:textColor="@color/slateblue" android:textSize="18sp" /> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout>



  • Điều hướng đến app/res/layout/activity_login.xml.
  • Thêm đoạn mã sau:
 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" android:background="@drawable/wallbg" tools:context=".LoginActivity"> <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="30dp" app:cardCornerRadius="30dp" app:cardElevation="20dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_gravity="center_horizontal" android:padding="24dp" android:background="@drawable/custom_edittext"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Login" android:textSize="36sp" android:textAlignment="center" android:textStyle="bold" android:textColor="@color/slateblue" /> <EditText android:layout_width="match_parent" android:layout_height="50dp" android:id="@+id/login_email" android:background="@drawable/custom_edittext" android:layout_marginRight="40dp" android:layout_marginTop="40dp" android:padding="8dp" android:hint="Email" android:drawableLeft="@drawable/baseline_person_24" android:drawablePadding="8dp" android:textColor="@color/black" /> <EditText android:layout_width="match_parent" android:layout_height="50dp" android:id="@+id/login_password" android:background="@drawable/custom_edittext" android:layout_marginRight="40dp" android:layout_marginTop="20dp" android:padding="8dp" android:hint="Password" android:drawableLeft="@drawable/baseline_lock_24" android:drawablePadding="8dp" android:textColor="@color/black" /> <Button android:layout_width="match_parent" android:layout_height="60dp" android:text="Login" android:id="@+id/login_button" android:textSize="18sp" android:layout_marginTop="30dp" android:backgroundTint="@color/slateblue" app:cornerRadius = "20dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/signUpRedirectText" android:text="Not yet registered? Sign Up" android:layout_gravity="center" android:padding="8dp" android:layout_marginTop="10dp" android:textColor="@color/slateblue" android:textSize="18sp" /> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout>



Bước 6: Thiết lập xác thực Firebase

  • Điều hướng đến thanh menu và nhấp vào 'Công cụ', sau đó chọn Firebase.
  • Khi bạn làm điều đó, bạn sẽ thấy một thanh bật lên bên cạnh. Cuộn qua và nhấp vào Xác thực , sau đó chọn ' Xác thực bằng hệ thống xác thực tùy chỉnh '. Hãy nhớ rằng, đây là hướng dẫn Java Android, vì vậy hãy đảm bảo rằng tùy chọn bạn đang chọn không sử dụng KOTLINE.


  • Kết nối với Firebase bằng cách nhấp vào nút. Nó sẽ chuyển hướng bạn đến bảng điều khiển Firebase của bạn. Nếu bạn chưa tạo tài khoản, hãy đảm bảo rằng bạn đã tạo một tài khoản. Bạn có thể sẽ đăng nhập; nếu không, sau đó đăng nhập.
  • Khi bạn tạo một dự án mới, nó sẽ đề xuất một tên dựa trên tên dự án trong Android Studio. Bạn có thể chọn giữ nó hoặc đổi tên nó. Của tôi là 'FirebaseAuthApp'.
  • Trong lời nhắc tiếp theo, hãy tắt Google Analytics cho dự án rồi tạo dự án.
  • Khi dự án đã được tạo, bạn sẽ thấy lời nhắc yêu cầu bạn kết nối Android Studio với Firebase. Chọn 'Được rồi', và bạn đã hoàn tất.
  • Quay lại bảng điều khiển Firebase và mở dự án mới tạo của bạn.
  • Nhấp vào 'Xây dựng' và sau đó chọn 'Xác thực'. Nhấp vào nút 'Bắt đầu'.
  • Thêm một phương thức đăng nhập bằng cách chọn 'Email/Mật khẩu' và bật nó. Điều này sẽ xây dựng hệ thống xác thực tùy chỉnh của bạn bằng phương pháp ưa thích của bạn, trong trường hợp này là email hoặc mật khẩu.

Phương thức đăng nhập


  • Điều hướng trở lại Android Studio. Bạn sẽ thấy một thông báo bật lên cho biết ứng dụng của bạn, com.example.firebaseauthapp, hiện được kết nối với dự án Firebase của bạn.
  • Thêm SDK xác thực Firebase vào Ứng dụng của bạn bằng cách nhấp vào nút trên thanh công cụ hỗ trợ và chọn 'chấp nhận thay đổi'.
  • Sau khi hoàn tất, bạn sẽ thấy lời nhắc trên thanh công cụ hỗ trợ cho biết các thành phần phụ thuộc đã được thiết lập chính xác.


  • Đóng thanh công cụ và mở Gradle.
  • Nhấp vào biểu tượng Gradle ở góc trên cùng bên trái của thanh công cụ Gradle.
  • Nhập 'signingRedport' trên thanh tìm kiếm và nhấn enter.
  • Sau khi có kết quả của Trình phân tích bản dựng, hãy sao chép hàm băm SHA1.
  • Quay lại bảng điều khiển Firebase và nhấp vào tổng quan dự án, sau đó chọn Cài đặt dự án.

Lưu ý: Nếu bạn có nhiều ứng dụng trong dự án, hãy chuyển đến tổng quan dự án, sau đó nhấp vào 'ứng dụng' và chọn ứng dụng bạn muốn xác thực.

  • Điều hướng đến cơ sở của dự án và thêm dấu vân tay. Dán hàm băm SHA1 rồi chọn Lưu." Bạn sẽ nhận được lời nhắc cho biết 'Đã thêm dấu vân tay chứng chỉ mới'.


Bước 7: Thêm xác thực vào dự án.

  • Mở tệp 'com/example/firebaseauthapp/SignUpActivity.java'.
  • Thêm các mục nhập cần thiết, khai báo phiên bản FirebaseAuth và khởi tạo phiên bản đó trong phương thức 'onCreate' của hoạt động đăng ký. Nó sẽ giống như thế này:
 package com.example.firebaseauthapp; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; 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; public class SignUpActivity extends AppCompatActivity { // Declare any other necessary variables. private FirebaseAuth auth; private EditText signupEmail, signupPassword; private Button signupButton; private TextView loginRedirectText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sign_up); //Initialize the FirebaseAuth instance in the onCreate() auth = FirebaseAuth.getInstance(); signupEmail = findViewById(R.id.signup_email); signupPassword = findViewById(R.id.signup_password); signupButton = findViewById(R.id.signup_button); loginRedirectText = findViewById(R.id.loginRedirectText); signupButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String user = signupEmail.getText().toString().trim(); String pass = signupPassword.getText().toString().trim(); if (user.isEmpty()){ signupEmail.setError("Email cannot be empty"); } if(pass.isEmpty()){ signupPassword.setError("Password cannot be empty"); } else{ auth.createUserWithEmailAndPassword(user, pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if(task.isSuccessful()){ Toast.makeText(SignUpActivity.this, "Signup Successful", Toast.LENGTH_SHORT).show(); startActivity(new Intent(SignUpActivity.this, LoginActivity.class)); } else{ Toast.makeText(SignUpActivity.this, "Signup Failed" + task.getException().getMessage(), Toast.LENGTH_SHORT).show(); } } }); } } }); loginRedirectText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startActivity(new Intent(SignUpActivity.this, LoginActivity.class)); } }); } }



  • Mở tệp 'com/example/firebaseauthapp/LoginActivity.java'.
  • Thêm đoạn mã sau:


 package com.example.firebaseauthapp; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.util.Patterns; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import com.google.android.gms.tasks.OnFailureListener; import com.google.android.gms.tasks.OnSuccessListener; import com.google.firebase.auth.AuthResult; import com.google.firebase.auth.FirebaseAuth; public class LoginActivity extends AppCompatActivity { private FirebaseAuth auth; private EditText loginEmail, loginPassword; private TextView signupRedirectText; private Button loginButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); auth = FirebaseAuth.getInstance(); loginEmail = findViewById(R.id.login_email); loginPassword = findViewById(R.id.login_password); loginButton = findViewById(R.id.login_button); signupRedirectText = findViewById(R.id.signupRedirectText); loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String email = loginEmail.getText().toString(); String pass = loginPassword.getText().toString(); if(!email.isEmpty() && Patterns.EMAIL_ADDRESS.matcher(email).matches()) { if (!pass.isEmpty()) { auth.signInWithEmailAndPassword(email, pass) .addOnSuccessListener(new OnSuccessListener<AuthResult>() { @Override public void onSuccess(AuthResult authResult) { Toast.makeText(LoginActivity.this, "Login Successful", Toast.LENGTH_SHORT).show(); startActivity(new Intent(LoginActivity.this, MainActivity.class )); finish(); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Toast.makeText(LoginActivity.this, "Login Failed", Toast.LENGTH_SHORT).show(); } }); } else { loginPassword.setError("Password cannot be empty"); } } else if (email.isEmpty()) { loginEmail.setError("Email cannot be empty"); } else { loginEmail.setError("Please enter a valid email"); } } }); signupRedirectText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startActivity(new Intent(LoginActivity.this, SignUpActivity.class)); } }); } }


  • Chạy ứng dụng và khởi động trình giả lập.


  • Bạn sẽ thấy một ứng dụng hoạt động đầy đủ.
  • Chuyển đến bảng điều khiển Firebase và nhấp vào 'Xác thực. Trong tab 'người dùng', bạn sẽ thấy danh sách người dùng mới đăng ký.


Bằng cách làm theo các bước này, bạn đã tích hợp thành công Firebase và thiết lập xác thực người dùng cho ứng dụng của mình.

Ứng dụng xác thực Firebase



Phần kết luận


Trong hướng dẫn này, chúng tôi đã sử dụng Firebase để thêm xác thực người dùng vào ứng dụng Android Java của mình. Chúng tôi đã phát triển một ứng dụng nơi người dùng có thể tạo tài khoản, đăng ký và đăng xuất. Chúng tôi cũng đề cập đến cách sử dụng điện thoại Android làm trình giả lập.

Để mở rộng kiến thức của bạn về Firebase trong quá trình phát triển ứng dụng Android, hãy tham khảo tài liệu về Android và Firebase.