Android 在firebase中创建用户之前,需要进行哪些修改才能发送验证电子邮件

Android 在firebase中创建用户之前,需要进行哪些修改才能发送验证电子邮件,android,android-studio,firebase,firebase-authentication,Android,Android Studio,Firebase,Firebase Authentication,我是android应用程序开发新手。我想在firebase中添加用户的电子邮件之前发送验证电子邮件。下面的代码需要进行哪些修改,才能将验证电子邮件发送到用户的电子邮件 package com.threemusketeers.healthmaster; import android.app.ProgressDialog; import android.content.Intent; import android.support.annotation.NonNull; import android

我是android应用程序开发新手。我想在firebase中添加用户的电子邮件之前发送验证电子邮件。下面的代码需要进行哪些修改,才能将验证电子邮件发送到用户的电子邮件

package com.threemusketeers.healthmaster;

import android.app.ProgressDialog;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
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;
import com.google.firebase.auth.FirebaseUser;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

//defining view objects
private EditText editTextEmail;
private EditText editTextPassword;
private Button buttonSignup;
private ProgressDialog progressDialog;

private TextView textViewSignin;
;

//defining firebaseauth object
private FirebaseAuth firebaseAuth;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //initializing firebase auth object
    firebaseAuth = FirebaseAuth.getInstance();

    //if getCurrentUser does not returns null
    if (firebaseAuth.getCurrentUser() != null) {
        //that means user is already logged in
        //so close this activity
        finish();

        //and open profile activity
        startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
    }

        //initializing views
        editTextEmail = (EditText) findViewById(R.id.editTextEmail);
        editTextPassword = (EditText) findViewById(R.id.editTextPassword);
        textViewSignin = (TextView) findViewById(R.id.textViewSignin);

        buttonSignup = (Button) findViewById(R.id.buttonSignup);

        progressDialog = new ProgressDialog(this);

        //attaching listener to button
        buttonSignup.setOnClickListener(this);
        textViewSignin.setOnClickListener(this);
    }

private void registerUser() {

    //getting email and password from edit texts
    String email = editTextEmail.getText().toString().trim();
    String password = editTextPassword.getText().toString().trim();

    //checking if email and passwords are empty
    if (TextUtils.isEmpty(email)) {
        Toast.makeText(this, "Please enter email", Toast.LENGTH_LONG).show();
        return;
    }

    if (TextUtils.isEmpty(password)) {
        Toast.makeText(this, "Please enter password", Toast.LENGTH_LONG).show();
        return;
    }

    //if the email and password are not empty
    //displaying a progress dialog

    progressDialog.setMessage("Registering Please Wait...");
    progressDialog.show();

    //creating a new user
    firebaseAuth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {

                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    //checking if success
                    if (task.isSuccessful()) {
                        finish();
                        startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
                        //Toast.makeText(MainActivity.this, "Successfully registered", Toast.LENGTH_LONG).show();
                    } else {
                        //display some message here
                        Toast.makeText(MainActivity.this, "Registration Error", Toast.LENGTH_LONG).show();
                    }
                    progressDialog.dismiss();
                }
            });

}

@Override
public void onClick(View view) {
    if(view == buttonSignup){
        registerUser();
    }

    if(view == textViewSignin){
        //open login activity when user taps on the already registered textview
        startActivity(new Intent(this, LoginActivity.class));
    }
}
}
package com.threeskesteers.healthmaster;
导入android.app.ProgressDialog;
导入android.content.Intent;
导入android.support.annotation.NonNull;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.text.TextUtils;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.google.android.gms.tasks.OnCompleteListener;
导入com.google.android.gms.tasks.Task;
导入com.google.firebase.auth.AuthResult;
导入com.google.firebase.auth.FirebaseAuth;
导入com.google.firebase.auth.FirebaseUser;
公共类MainActivity扩展AppCompatActivity实现View.OnClickListener{
//定义视图对象
私人编辑文本编辑电子邮件;
私人编辑文本编辑密码;
私人按钮启动;
私有进程对话;
私有文本视图文本视图登录;
;
//定义firebaseauth对象
私有FirebaseAuth FirebaseAuth;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化firebase身份验证对象
firebaseAuth=firebaseAuth.getInstance();
//如果getCurrentUser不返回null
如果(firebaseAuth.getCurrentUser()!=null){
//这意味着用户已经登录
//因此,请关闭此活动
完成();
//和公开资料活动
startActivity(新意图(getApplicationContext(),ProfileActivity.class));
}
//初始化视图
editTextEmail=(EditText)findViewById(R.id.editTextEmail);
editTextPassword=(EditText)findViewById(R.id.editTextPassword);
textViewSignin=(TextView)findViewById(R.id.textViewSignin);
buttonSignup=(Button)findViewById(R.id.buttonSignup);
progressDialog=新建progressDialog(此);
//将侦听器附加到按钮
buttonSignup.setOnClickListener(这个);
textViewSignin.setOnClickListener(此);
}
私有无效注册器(){
//从编辑文本获取电子邮件和密码
字符串email=editTextEmail.getText().toString().trim();
字符串密码=editTextPassword.getText().toString().trim();
//检查电子邮件和密码是否为空
如果(TextUtils.isEmpty(电子邮件)){
Toast.makeText(这是“请输入电子邮件”,Toast.LENGTH_LONG.show();
回来
}
if(TextUtils.isEmpty(密码)){
Toast.makeText(这是“请输入密码”,Toast.LENGTH_LONG.show();
回来
}
//如果电子邮件和密码不是空的
//显示进度对话框
progressDialog.setMessage(“正在注册,请稍候…”);
progressDialog.show();
//创建新用户
firebaseAuth.createUserWithEmailAndPassword(电子邮件,密码)
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
//检查是否成功
if(task.issusccessful()){
完成();
startActivity(新意图(getApplicationContext(),ProfileActivity.class));
//Toast.makeText(MainActivity.this,“成功注册”,Toast.LENGTH_LONG.show();
}否则{
//在这里显示一些消息
Toast.makeText(MainActivity.this,“注册错误”,Toast.LENGTH_LONG.show();
}
progressDialog.disclose();
}
});
}
@凌驾
公共void onClick(视图){
如果(视图==按钮启动){
registerUser();
}
如果(视图==文本视图签名){
//当用户点击已注册的textview时打开登录活动
startActivity(新意图(这个,LoginActivity.class));
}
}
}
使用新的API('com.google.firebase:firebase auth:9.6.1'),您可以使用:

私有无效验证电子邮件(){

firebaseAuth.getCurrentUser().sendEmailVerification()
.addOnCompleteListener(getActivity(),new OnCompleteListener()){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Toast.makeText(getActivity(),“Email sent”,Toast.LENGTH_LONG.show();
}
}
});
}

firebaseAuth.createUserWithEmailAndPassword(电子邮件,密码)
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
最终FirebaseUser用户=FirebaseAuth.getInstance().getCurrentUser();
user.sendEmailVerification()
.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
user.sendEmailVerification();
if(task.issusccessful()){
完成();
Toast.makeText(Register.this,“注册成功。检查您的电子邮件”,Toast.LENGTH_SHORT.show();
startActivity(新的意图(getApplicationContext()),您可以
firebaseAuth.getCurrentUser().sendEmailVerification()
        .addOnCompleteListener(getActivity(), new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if (task.isSuccessful()) {
                    Toast.makeText(getActivity(), "Email sent", Toast.LENGTH_LONG).show();
                }
            }
        });
                firebaseAuth.createUserWithEmailAndPassword(email, password)
                        .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                            @Override
                            public void onComplete(@NonNull Task<AuthResult> task) {
                                if (task.isSuccessful()) {
                                    final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
                                    user.sendEmailVerification()
                                            .addOnCompleteListener(new OnCompleteListener<Void>() {
                                                @Override
                                                public void onComplete(@NonNull Task<Void> task) {
                                                    user.sendEmailVerification();
                                                    if (task.isSuccessful()) {
                                                        finish();
                                                        Toast.makeText(Register.this, "Registered Successfully. Check your email", Toast.LENGTH_SHORT).show();
                                                        startActivity(new Intent(getApplicationContext(), yourActivity.class));
                                                    }
                                                }
                                            });

                                    if (firebaseAuth.getCurrentUser() != null) {
                                        finish();
                                        startActivity(new Intent(getApplicationContext(), yourActivity.class)); 
                                    }
                                } else {
                                    Toast.makeText(Register.this, "Could not Register User. Try Again", Toast.LENGTH_SHORT).show();
                                }
                            }
                        });
if(user.isEmailVerified){
//allow to login app
} else{
//show toast, help, inform that account is not registered or no  stable internet connection
}