首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在firebase注册中注册用户?

如何在firebase注册中注册用户?
EN

Stack Overflow用户
提问于 2019-07-04 16:20:44
回答 1查看 52关注 0票数 0

我将在Firebase身份验证中插入我的电子邮件和密码。但是,我在互联网上找到的代码对我不起作用?下面是代码,当我单击“下一步”按钮时,它也返回到上一页,它不会继续下一页?

代码语言:javascript
复制
public void completeRegis() {

    username1 = username.getText().toString().trim();
    email1 = email.getText().toString().trim();
    psd1 = psd.getText().toString().trim();
    psd2 = reconpsd.getText().toString().trim(); 

    mAuth.createUserWithEmailAndPassword(email1, psd1)
        .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()) {
                    //start profile activity here

                    User user = new User(username1, email1,psd1);

                    FirebaseDatabase.getInstance().getReference("Users")
                        .child(FirebaseAuth.getInstance().getCurrentUser().getUid())
                        .setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {

                    public void onComplete(@NonNull Task<Void> task) {
                        if (task.isSuccessful()) {
                            Toast.makeText(RoleInfo1.this, "Registration successful.", Toast.LENGTH_SHORT).show();
                            startActivity(new Intent(RoleInfo1.this, HomePage.class ));
                            progressBar.setVisibility(View.GONE);
                        } else {
                            Toast.makeText(RoleInfo1.this, "Database not created", Toast.LENGTH_SHORT).show();
                            progressBar.setVisibility(View.GONE);
                        }
                    }
                });
            } else {
                Toast.makeText(RoleInfo1.this, "Registration not successful, please try again.", Toast.LENGTH_SHORT).show();
                progressBar.setVisibility(View.GONE);
            }
        });
    }

    private void initializeUI() {
        username = findViewById(R.id.usernameregister);
        email = findViewById(R.id.emailregister);
        psd = findViewById(R.id.psdregister);
        reconpsd = findViewById(R.id.reconpsdregister);
        progressBar = findViewById(R.id.progressBar);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-04 16:47:42

我对安卓系统非常陌生,但我最近成功地制作了一个signUp页面。

声明firebase身份验证实例

代码语言:javascript
复制
private FirebaseAuth mAuth;
private EditText mName, mEmailField, mConfirmPass, mNewPass;

然后在onCreate()中,我将它们声明为

代码语言:javascript
复制
 mName = (EditText) findViewById(R.id.eName);
    mEmailField = (EditText) findViewById(R.id.fieldEmail);
    mConfirmPass = (EditText) findViewById(R.id.fieldConfirm);
    mNewPass = (EditText) findViewById(R.id.fieldNew);

    mAuth = FirebaseAuth.getInstance();

我在认证页面中添加了一个用于注册的按钮。单击它将启动signUp过程。这是在onCreate()方法中完成的

代码语言:javascript
复制
b1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startSignUp();
        }
    });

然后,我声明startSignUp()方法,如下所示

代码语言:javascript
复制
public void startSignUp(){

    String name = mName.getText().toString();
    String email = mEmailField.getText().toString();
    String newPass = mNewPass.getText().toString();
    String conPass = mConfirmPass.getText().toString();

    if(TextUtils.isEmpty(name) || TextUtils.isEmpty(email) || TextUtils.isEmpty(newPass) || TextUtils.isEmpty(conPass)){
        Toast.makeText(SignUp.this, "Fields Empty" , Toast.LENGTH_LONG).show();
    }
        mAuth.createUserWithEmailAndPassword(email,newPass).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if(! task.isSuccessful()){
                    Toast.makeText(SignUp.this, "SignUp Failed", Toast.LENGTH_LONG).show();
                }else {
                    openAuthetication();
                }
            }
        });
    }
}

如果signUp成功,将返回身份验证页面进行登录。这是在openAuthetication()方法中完成的。

代码语言:javascript
复制
public void openAuthetication(){
    Intent intent = new Intent(this, Authetication.class);
    startActivity(intent);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56883565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档