Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 存储用户';s注册后的电子邮件和密码_Java_Android_Firebase_Firebase Realtime Database_Firebase Authentication - Fatal编程技术网

Java 存储用户';s注册后的电子邮件和密码

Java 存储用户';s注册后的电子邮件和密码,java,android,firebase,firebase-realtime-database,firebase-authentication,Java,Android,Firebase,Firebase Realtime Database,Firebase Authentication,我正在制作具有用户配置文件的社交媒体应用程序。我想在他们完成注册后保存他们的个人资料数据。虽然注册成功,但用户的电子邮件和密码未保存在Firebase数据库中。我还检查了规则,我使用测试模式 这是我的规则: { "rules": { ".read": true, ".write": true } } 这是我的密码: public class SignUpActivity extends AppCompatActivity { private Button btn_signin,

我正在制作具有用户配置文件的社交媒体应用程序。我想在他们完成注册后保存他们的个人资料数据。虽然注册成功,但用户的电子邮件和密码未保存在Firebase数据库中。我还检查了规则,我使用测试模式

这是我的规则:

{
  "rules": {
".read": true,
".write": true
  }
}
这是我的密码:

public class SignUpActivity extends AppCompatActivity
{
    private Button btn_signin,btn_signup;
    private EditText inputEmail, inputPassword, inputconPassword;
    private ProgressBar progressBar;
    private FirebaseAuth auth;
    private FirebaseUser firebaseuser;

    private static final String PASSWORD_PATTERN ="((?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{6,20})";
    private static  final String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sign_up);
        auth = FirebaseAuth.getInstance();

        btn_signin = (Button) findViewById(R.id.btn_signin);
        btn_signup = (Button) findViewById(R.id.btn_signup);
        inputEmail = (EditText) findViewById(R.id.u_email);
        inputPassword = (EditText) findViewById(R.id.u_password);
        inputconPassword = (EditText) findViewById(R.id.u_conpassword);
        progressBar = (ProgressBar) findViewById(R.id.progressBar);

        btn_signin.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                startActivity(new Intent(SignUpActivity.this, LoginActivity.class));
            }
        });

        btn_signup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            final String email = inputEmail.getText().toString().trim();
            final String password = inputPassword.getText().toString().trim();

            if (!validateForm())
            {
                return;
            }

            progressBar.setVisibility(View.VISIBLE);

            //create user
            auth.createUserWithEmailAndPassword(email, password)
                    .addOnCompleteListener(SignUpActivity.this, new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            progressBar.setVisibility(View.GONE);
                            // If sign in fails, display a message to the user. If sign in succeeds
                            // the auth state listener will be notified and logic to handle the
                            // signed in user can be handled in the listener.
                            if (!task.isSuccessful())
                            {
                                Toast.makeText(SignUpActivity.this, "Authentication failed." + task.getException(),
                                        Toast.LENGTH_SHORT).show();
                            }
                            else
                                {
                                    Toast.makeText(SignUpActivity.this, "createUserWithEmail:onComplete:" + task.isSuccessful(), Toast.LENGTH_SHORT).show();
                                    firebaseuser = auth.getCurrentUser();
                                    User myUserInsertObj = new User(inputEmail.getText().toString().trim(),inputconPassword.getText().toString().trim());
                                    DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Users");
                                    String uid = firebaseuser.getUid();

                                    ref.child(uid).setValue(myUserInsertObj).addOnCompleteListener(new OnCompleteListener<Void>() {
                                            @Override
                                            public void onComplete(@NonNull Task<Void> task)
                                            {
                                                if(task.isSuccessful())
                                                {
                                                    Toast.makeText(SignUpActivity.this, "User data stored.",Toast.LENGTH_SHORT).show();
                                                    finish();
                                                    startActivity(new Intent(getApplicationContext(), Main2Activity.class));
                                                }
                                                else
                                                {
                                                    Toast.makeText(SignUpActivity.this, "Error.",Toast.LENGTH_SHORT).show();
                                                    finish();
                                                    startActivity(new Intent(getApplicationContext(), Main3Activity.class));
                                                }
                                            }
                                        });
                            }
                        }
                    });
        }
    });
}

    private boolean validateForm()
    {
        boolean valid = true;

        String email = inputEmail.getText().toString();
        if (TextUtils.isEmpty(email))
        {
            inputEmail.setError("Required.");
            valid = false;
        }

        String password =inputPassword.getText().toString();
        String conpassword = inputconPassword.getText().toString();
        if (TextUtils.isEmpty(password))
        {
            inputPassword.setError("Required.");
            valid = false;
        }

        if (TextUtils.isEmpty(conpassword))
        {
            inputconPassword.setError("Required.");
            valid = false;
        }

        if(email.length()>0 && password.length()>0 && conpassword.length()>0)
        {
            if (isEmailValid(email))
            {
                inputEmail.setError(null);
                if (isValidPassword(password))
                {
                    inputPassword.setError(null);
                    if (isValidPassword(conpassword))
                    {
                        inputconPassword.setError(null);
                        if (password.equals(conpassword))
                        {
                            return valid;
                        }
                        else
                        {
                            Toast.makeText(getApplicationContext(), "Password not matched.Try again.", Toast.LENGTH_SHORT).show();
                            valid = false;
                        }
                    }
                    else
                    {
                        Toast.makeText(getApplicationContext(), "Password must contains minimum 6 characters at least 1 Lowercase, 1 Uppercase and, 1 Number.", Toast.LENGTH_SHORT).show();
                    valid = false;
                    }
                }
                else
                {
                    Toast.makeText(getApplicationContext(), "Password must contains minimum 6 characters at least 1 Lowercase, 1 Uppercase and, 1 Number.", Toast.LENGTH_SHORT).show();
                    valid = false;
                }
            }
            else
            {
                Toast.makeText(getApplicationContext(), "Email invalid.", Toast.LENGTH_SHORT).show();
                valid = false;
            }
        }
        return valid;
    }

    public static boolean isEmailValid(String email)
    {
       Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(email);
        return matcher.matches();
    }

    public static boolean isValidPassword(final String password)
    {
        Pattern pattern;
        Matcher matcher;
        pattern = Pattern.compile(PASSWORD_PATTERN);
        matcher = pattern.matcher(password);
        return matcher.matches();
    }

    @Override
    protected void onResume() {
        super.onResume();
        progressBar.setVisibility(View.GONE);
    }
}
公共类注册活动扩展了AppCompatActivity
{
私人按钮btn_登录,btn_注册;
私人编辑文本输入电子邮件、输入密码、输入密码;
私人ProgressBar ProgressBar;
私有FirebaseAuth-auth;
私有FirebaseUser FirebaseUser;
私有静态最终字符串密码_PATTERN=“(?=.*\\d)(?=.[a-z])(?=.[a-z])。{6,20}”;
私有静态最终字符串表达式=“^[\\w\\.-]+@([\\w\\-]+\\)+[A-Z]{2,4}$”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u注册);
auth=FirebaseAuth.getInstance();
btn_sign=(按钮)findViewById(R.id.btn_sign);
btn_注册=(按钮)findviewbyd(R.id.btn_注册);
inputEmail=(EditText)findViewById(R.id.u_电子邮件);
inputPassword=(EditText)findViewById(R.id.u\u密码);
inputconPassword=(EditText)findViewById(R.id.u\u conpassword);
progressBar=(progressBar)findViewById(R.id.progressBar);
btn_sign.setOnClickListener(新视图.OnClickListener()
{
@凌驾
公共void onClick(视图v)
{
startActivity(新意图(SignUpActivity.this、LoginActivity.class));
}
});
btn_signup.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
最终字符串email=inputEmail.getText().toString().trim();
最终字符串密码=inputPassword.getText().toString().trim();
如果(!validateForm())
{
回来
}
progressBar.setVisibility(View.VISIBLE);
//创建用户
auth.createUserWithEmailAndPassword(电子邮件,密码)
.addOnCompleteListener(SignUpActivity.this,new OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
progressBar.setVisibility(View.GONE);
//如果登录失败,则向用户显示消息。如果登录成功
//将通知身份验证状态侦听器,并使用逻辑来处理
//可以在侦听器中处理已登录用户。
如果(!task.issusccessful())
{
Toast.makeText(SignUpActivity.this,“身份验证失败”。+task.getException(),
吐司。长度(短)。show();
}
其他的
{
Toast.makeText(SignUpActivity.this,“createUserWithEmail:onComplete:“+task.issusccessful(),Toast.LENGTH\u SHORT).show();
firebaseuser=auth.getCurrentUser();
用户myUserInsertObj=新用户(inputEmail.getText().toString().trim(),inputconPassword.getText().toString().trim());
DatabaseReference ref=FirebaseDatabase.getInstance().getReference(“用户”);
字符串uid=firebaseuser.getUid();
ref.child(uid).setValue(myUserInsertObj).addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务)
{
if(task.issusccessful())
{
Toast.makeText(SignUpActivity.this,“存储的用户数据”,Toast.LENGTH_SHORT.show();
完成();
startActivity(新意图(getApplicationContext(),Main2Activity.class));
}
其他的
{
Toast.makeText(SignUpActivity.this,“Error.”,Toast.LENGTH_SHORT.show();
完成();
startActivity(新意图(getApplicationContext(),Main3Activity.class));
}
}
});
}
}
});
}
});
}
私有布尔validateForm()
{
布尔有效=真;
字符串email=inputEmail.getText().toString();
如果(TextUtils.isEmpty(电子邮件))
{
inputEmail.setError(“必需”);
有效=错误;
}
字符串密码=inputPassword.getText().toString();
String conpassword=inputconPassword.getText().toString();
if(TextUtils.isEmpty(密码))
{
inputPassword.setError(“必需”);
有效=错误;
}
if(TextUtils.isEmpty(conpassword))
{
inputconPassword.setError(“必需”);
有效=错误;
}
if(email.length()>0&&password.length()>0&&conpassword.length()>0)
{
如果(isEmailValid(电子邮件))
{
inputEmail.setError(空);
String email=inputEmail.getText().toString().trim();
String password=inputconPassword.getText().toString().trim();
FirebaseUser currentUser= task.getResult().getUser();
String userid=currentUser.getUid();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users").child(userid);
ref.child("email").setValue(email);
ref.child("password").setValue(password);
Users
  userid
    email: email_here
    password: password_here
        btn_signup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final String email = inputEmail.getText().toString().trim();
            final String password = inputPassword.getText().toString().trim();

            if (!validateForm())
            {
                return;
            }

            progressBar.setVisibility(View.VISIBLE);

            //create user
            auth.createUserWithEmailAndPassword(email, password)
                    .addOnCompleteListener(SignUpActivity.this, new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            progressBar.setVisibility(View.GONE);
                            // If sign in fails, display a message to the user. If sign in succeeds
                            // the auth state listener will be notified and logic to handle the
                            // signed in user can be handled in the listener.
                            if (task.isSuccessful())
                            {
                                DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Users");

                                firebaseUser = auth.getCurrentUser();
                                String uid = firebaseUser.getUid();

                                User my = new User(email,password);

                                ref.child(uid).setValue(my).addOnCompleteListener(new OnCompleteListener<Void>() {
                                    @Override
                                    public void onComplete(@NonNull Task<Void> task)
                                    {
                                        if(task.isSuccessful())
                                        {
                                            Toast.makeText(SignUpActivity.this, "Sign Up successfully.",Toast.LENGTH_SHORT).show();
                                            finish();
                                            startActivity(new Intent(getApplicationContext(), Main2Activity.class));
                                        }
                                        else
                                        {
                                            Toast.makeText(SignUpActivity.this, "Error.",Toast.LENGTH_SHORT).show();
                                            finish();
                                            startActivity(new Intent(getApplicationContext(), Main3Activity.class));
                                        }
                                    }
                                });


                            }
                            else
                                {
                                    Toast.makeText(SignUpActivity.this, "Authentication failed." + task.getException(),
                                            Toast.LENGTH_SHORT).show();
                            }
                        }
                    });
        }
    });