先决条件:
- 安装安卓工作室。
- 必须了解Java语言。
- 安卓的基本概念。
什么是Firebase?
Firebase 是 Google 的移动开发平台。它为您提供了一个快速、高质量的应用程序和更好的用户群的平台。您可以根据已知需求使用 Firebase 中的多种互补功能。
连接firebase和android studio的主要需求是谷歌仓库版本等于或大于26。
检查版本的步骤:
- 单击工具,然后单击 SDK 管理器
- 单击 SDK 工具选项卡。
- 检查 Google 存储库
- 如果 Google 存储库不等于 26 或更高版本,则通过点击安装来安装更高版本的存储库。
- 等到安装完成。
如何将项目与Firebase连接起来?
将应用程序与 Firebase 连接有两种方法:
- 直接将您的应用程序与 android studio 连接。
- 单击工具,然后单击 firebase。
- Firebase 会打开助手窗口。
- 单击可见的入门教程并相应地连接它。
- 在家中与 console.firebase.google.com 连接。
- 打开控制台Firebase。
-
输入项目名称->继续
-
点击继续
我们在这个 android 应用程序中做什么?
我们创建一个登录和注册应用程序,并将两个页面与 firebase 连接以进行身份验证。当用户进行注册时,用户的信息就会被注册。只有注册用户才能登录,否则会显示错误消息。
应用程序中使用的组件:
- LinearLayout:使用线性布局非常容易。我们可以轻松地将组件设置为活动。
- EditText:用于获取用户的输入。我们还可以对文本进行验证。例如,如果我们只想获取用户输入的数字,那么我们可以放置输入验证。
- Button:Button需要用户操作。它不适用于用户操作。它仅在用户按下特定按钮时才起作用。
- Toast:Toast 是一个 UI 组件。它用于显示一条短消息。我们可以借助 LENGTH_LONG 和 LENGTH.SHORT 等函数来设置消息持续时间。
应用程序的工作:
- 要进入应用程序的主页,您需要注册。
- 前往注册页面并自行注册。
- 现在通过输入您注册时使用的电子邮件和密码进入登录页面。
- 如果您输入了正确的详细信息,那么您将导航到应用程序的主页。
注册页面的 XML 文件
<?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"
tools:context=".Register">
<EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="4pt"
android:layout_marginLeft="4pt"
android:layout_marginTop="10pt"
android:hint="Username"/>
<EditText
android:id="@+id/password1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10pt"
android:layout_marginLeft="4pt"
android:layout_marginRight="4pt"
android:hint="Password"/>
<Button
android:id="@+id/sign"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="4pt"
android:layout_marginLeft="4pt"
android:layout_marginTop="10pt"
android:text="SIGN UP"/>
</LinearLayout>
登录页面的 XML 文件
<?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"
tools:context=".login">
<EditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="4pt"
android:layout_marginLeft="4pt"
android:layout_marginTop="10pt"
android:hint="Username"/>
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10pt"
android:layout_marginLeft="4pt"
android:layout_marginRight="4pt"
android:hint="Password"/>
<Button
android:id="@+id/btn_login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="4pt"
android:layout_marginLeft="4pt"
android:layout_marginTop="10pt"
android:text="LOG IN"/>
<Button
android:id="@+id/btn_signup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="4pt"
android:layout_marginLeft="4pt"
android:layout_marginTop="10pt"
android:text="SIGN UP"/>
</LinearLayout>
注册页面的Java代码
package com.example.firebaseaap;
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.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 Register extends AppCompatActivity {
Button btn2_signup;
EditText user_name, pass_word;
FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
user_name=findViewById(R.id.username);
pass_word=findViewById(R.id.password1);
btn2_signup=findViewById(R.id.sign);
mAuth=FirebaseAuth.getInstance();
btn2_signup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String email = user_name.getText().toString().trim();
String password= pass_word.getText().toString().trim();
if(email.isEmpty())
{
user_name.setError("Email is empty");
user_name.requestFocus();
return;
}
if(!Patterns.EMAIL_ADDRESS.matcher(email).matches())
{
user_name.setError("Enter the valid email address");
user_name.requestFocus();
return;
}
if(password.isEmpty())
{
pass_word.setError("Enter the password");
pass_word.requestFocus();
return;
}
if(password.length()<6)
{
pass_word.setError("Length of the password should be more than 6");
pass_word.requestFocus();
return;
}
mAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful())
{
Toast.makeText(Register.this,"You are successfully Registered", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(Register.this,"You are not Registered! Try again",Toast.LENGTH_SHORT).show();
}
}
});
}
});
}
}
登录页面的Java代码
package com.example.firebaseaap;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Patterns;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.firebase.auth.FirebaseAuth;
public class login extends AppCompatActivity {
private EditText user_name, pass_word;
FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
user_name=findViewById(R.id.email);
pass_word=findViewById(R.id.password);
Button btn_login = findViewById(R.id.btn_login);
Button btn_sign = findViewById(R.id.btn_signup);
mAuth=FirebaseAuth.getInstance();
btn_login.setOnClickListener(v -> {
String email= user_name.getText().toString().trim();
String password=pass_word.getText().toString().trim();
if(email.isEmpty())
{
user_name.setError("Email is empty");
user_name.requestFocus();
return;
}
if(!Patterns.EMAIL_ADDRESS.matcher(email).matches())
{
user_name.setError("Enter the valid email");
user_name.requestFocus();
return;
}
if(password.isEmpty())
{
pass_word.setError("Password is empty");
pass_word.requestFocus();
return;
}
if(password.length()<6)
{
pass_word.setError("Length of password is more than 6");
pass_word.requestFocus();
return;
}
mAuth.signInWithEmailAndPassword(email,password).addOnCompleteListener(task -> {
if(task.isSuccessful())
{
startActivity(new Intent(login.this, MainActivity.class));
}
else
{
Toast.makeText(login.this,
"Please Check Your login Credentials",
Toast.LENGTH_SHORT).show();
}
});
});
btn_sign.setOnClickListener(v -> startActivity(new Intent(login.this,Register.class )));
}
}