使用 Firebase 使用 SignUp 和 SignIn 创建 Android 应用

5 篇文章 0 订阅
2 篇文章 0 订阅

先决条件:

  • 安装安卓工作室。
  • 必须了解Java语言。
  • 安卓的基本概念。

什么是Firebase?

Firebase 是 Google 的移动开发平台。它为您提供了一个快速、高质量的应用程序和更好的用户群的平台。您可以根据已知需求使用 Firebase 中的多种互补功能。

连接firebase和android studio的主要需求是谷歌仓库版本等于或大于26。

检查版本的步骤:

  • 单击工具,然后单击 SDK 管理器
  • 单击 SDK 工具选项卡。
  • 检查 Google 存储库
  • 如果 Google 存储库不等于 26 或更高版本,则通过点击安装来安装更高版本的存储库。
  • 等到安装完成。

如何将项目与Firebase连接起来?

将应用程序与 Firebase 连接有两种方法:

  1. 直接将您的应用程序与 android studio 连接。
  • 单击工具,然后单击 firebase。
  • Firebase 会打开助手窗口。
  • 单击可见的入门教程并相应地连接它。
  1. 在家中与 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 )));
    }

}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值