首页 > 解决方案 > firebase 中的实时数据库未获取通过 android studio 存储的信息

问题描述

我正在使用firebase身份验证,当存储用户的信息时,它会进入firebase中的身份验证,但是当我使用实时数据库的方法来存储信息时任务不成功。我有 SDK-1、google json 文件、所有依赖项以及用于在 firebase 中进行实时和身份验证的实现。在 mAuth.createUserWithEmailAndPassword 的 onComplete 方法内部是 task.isSuccessful 发生的地方,但它永远不会工作。我只是对我缺少与我的项目进行实时数据库连接的步骤感到困惑。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_register_user);
    mAuth = FirebaseAuth.getInstance();
    banner = (TextView)findViewById(R.id.banner);
    registerUser = (Button)findViewById(R.id.registerUser);
    banner.setOnClickListener((View.OnClickListener) this);
    registerUser.setOnClickListener((View.OnClickListener) this);
    editTextFullName=(EditText)findViewById(R.id.fullName);
    editTextAge=(EditText)findViewById(R.id.age);
    editTextTextEmail=(EditText)findViewById(R.id.email);
    editTextPassword=(EditText)findViewById(R.id.password);
    progressBar = (ProgressBar) findViewById(R.id.progressBar);
    Log.d("Adviks"," " + editTextFullName);

}

@Override
public void onClick(View v) {
    switch(v.getId()){
        case R.id.banner:
            startActivity(new Intent(this, Register_Page.class));
            break;
        case R.id.registerUser:
            registerUser();
            break;

    }
}

private void registerUser() {
    String email = editTextTextEmail.getText().toString().trim();
    String password = editTextPassword.getText().toString().trim();
    String fullName = editTextFullName.getText().toString().trim();
    String Age = editTextAge.getText().toString().trim();
    Log.d("Adviks","Email: " + email + " Name: " + fullName + " Age: " + Age + "password: " + password);

    if(fullName.isEmpty())
    {
        editTextFullName.setError("Full Name is required!");
        editTextFullName.requestFocus();
        return;
    }
    if(Age.isEmpty())
    {
        editTextAge.setError("Age is required!");
        editTextAge.requestFocus();
        return;
    }
    if(email.isEmpty())
    {
        editTextTextEmail.setError("Email is required!");
        editTextTextEmail.requestFocus();
        return;
    }
    if(!Patterns.EMAIL_ADDRESS.matcher(email).matches()){
        editTextTextEmail.setError("Please provide valid email!");
        editTextTextEmail.requestFocus();
        return;
    }
    if(password.isEmpty()){
        editTextPassword.setError("Password is required!");
        editTextPassword.requestFocus();
        return;
    }
    if(password.length()<6)
    {
        editTextPassword.setError("Minimum password length should be 6 characters!");
        editTextPassword.requestFocus();
        return;
    }
    progressBar.setVisibility(View.VISIBLE);
    mAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {

        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if (task.isSuccessful()) {
                User user = new User(fullName, Age, email);
                FirebaseDatabase.getInstance().getReference("Users").child(FirebaseAuth.getInstance().getCurrentUser().getUid()).setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        Log.d("Adviksac"," " + Age);

                        if (task.isSuccessful()) {
                            Log.d("Adviksac"," " + Age);


                            Toast.makeText(register_user.this, "Registered successfully!", Toast.LENGTH_LONG).show();
                            progressBar.setVisibility(View.GONE);
                            startActivity(new Intent(register_user.this,Register_Page.class));
                        } else {
                            Toast.makeText(register_user.this, "Failed to register! Try again!", Toast.LENGTH_LONG).show();
                            progressBar.setVisibility(View.GONE);
                            startActivity(new Intent(register_user.this,Register_Page.class));

                        }
                    }
                });

            } else {
                Toast.makeText(register_user.this, "Failed to register! Try again!", Toast.LENGTH_LONG).show();
                progressBar.setVisibility(View.GONE);

            }
        }
    });

}

标签: javafirebaseandroid-studiofirebase-realtime-database

解决方案


推荐阅读