'Problem with user registration through Firebase - not saving data in Realtime Database‏

I'm developing a social networking app that uses subscribing and building a user profile through FareBas. Unfortunately, the program works and when the user presses the register button, an error appears and the information does not go into real-time. !I would be very grateful for the help.

Registration page:

  package com.example.myapplicationfire;
    
    import androidx.annotation.NonNull;
    import androidx.appcompat.app.AppCompatActivity;
    import android.app.ProgressDialog;
    import android.content.ContentResolver;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.net.Uri;
    import android.os.Bundle;
    import android.text.method.HideReturnsTransformationMethod;
    import android.text.method.PasswordTransformationMethod;
    import android.util.Patterns;
    import android.view.View;
    import android.webkit.MimeTypeMap;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ImageView;
    import android.widget.Toast;
    import com.google.android.gms.tasks.OnCompleteListener;
    import com.google.android.gms.tasks.OnFailureListener;
    import com.google.android.gms.tasks.OnSuccessListener;
    import com.google.android.gms.tasks.Task;
    import com.google.firebase.auth.AuthResult;
    import com.google.firebase.auth.FirebaseAuth;
    import com.google.firebase.database.DatabaseReference;
    import com.google.firebase.database.FirebaseDatabase;
    import com.google.firebase.storage.FirebaseStorage;
    import com.google.firebase.storage.StorageReference;
    import com.google.firebase.storage.UploadTask;
    
    public class reg extends AppCompatActivity implements View.OnClickListener 

{

EditText name, pass, email, bio;
FirebaseAuth firebaseAuth;
FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
Button b,b1;
ProgressDialog p;
DatabaseReference myref = firebaseDatabase.getReference("Users");
ImageView pic;
Uri uri;
StorageReference storageReference;
String picName;

SharedPreferences sp;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_reg);
    name = findViewById(R.id.et1);
    pass = findViewById(R.id.et2);
    email = findViewById(R.id.et3);
    bio = findViewById(R.id.et5);
    b = findViewById(R.id.b1);
    b.setOnClickListener(this);
    b1 = findViewById(R.id.b2);
    b1.setOnClickListener(this);
    pic =findViewById(R.id.pic1);
    pic.setImageResource(R.drawable.person);
    pic.setOnClickListener(this);
    sp=getSharedPreferences("details",0);
    firebaseAuth = FirebaseAuth.getInstance();

}

public void createUser() {
    p = new ProgressDialog(this);
    p.setMessage("Registration...");
    p.show();
    if (isValidate())

        firebaseAuth.createUserWithEmailAndPassword(email.getText().toString
                (), pass.getText().toString()).addOnCompleteListener(this,
                new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull
                                                   Task<AuthResult> task) {
                        if (task.isSuccessful()) {
                            storageReference =
                                    FirebaseStorage.getInstance().getReference("Image/Users/"+email.getText().toString().replace('.',' '));
                            storageReference = storageReference.child(picName);
                            storageReference.putFile(uri).addOnSuccessListener(new OnSuccessListener <UploadTask.TaskSnapshot>() {
                                @Override
                                public void
                                onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                                    Toast.makeText(reg.this, "תמונה הועלתה", Toast.LENGTH_LONG).show();
                                }
                            }).addOnFailureListener(new OnFailureListener() {
                                @Override
                                public void onFailure(@NonNull Exception e) {
                                    Toast.makeText(reg.this, "" +
                                            e.getMessage(), Toast.LENGTH_LONG).show(); }
                            });
                            myref=firebaseDatabase.getReference("users").push();



                            User u = new
                                    User(name.getText().toString(), pass.getText().toString(),
                                    email.getText().toString(), myref.getKey(),picName,bio.getText().toString());
                            myref.setValue(u);
                            p.dismiss();
                            Toast.makeText(reg.this, "ההרשמה הצליחה!", Toast.LENGTH_LONG).show();
                        }
                    }
                }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {

                Toast.makeText(reg.this,
                        "" + e.getMessage(), Toast.LENGTH_LONG).show();
                p.dismiss();
            }
        });

}


public boolean isValidate() {
    if (!
            Patterns.EMAIL_ADDRESS.matcher(email.getText().toString()).matches()) {
        email.setError("Invalid email");
        email.setFocusable(true);
        return false;
    } else if (pass.getText().toString().length() < 6) {
        pass.setError("password length at least 6 characters");
        pass.setFocusable(true);
        return false;
    }
    else if (bio.getText().toString().length() < 10) {
        bio.setError("bio length should be 10-100 characters");
        bio.setFocusable(true);
        return false;
    }
    return true;
}

@Override
public void onClick(View view) {
    if (view == pic) {
        Intent intent = new Intent();
        intent.setType("image/*");

        intent.setAction(Intent.ACTION_OPEN_DOCUMENT);
        startActivityForResult(Intent.createChooser(intent, "Select Picture"), 0);
    }
    if (view == b) {

        createUser();
        if(isValidate()){
            sp=getSharedPreferences("details",0);
            SharedPreferences.Editor editor=sp.edit();
            editor.putBoolean("isChecked",true);
            editor.putString("name",name.getText().toString());
            editor.putString("bio",bio.getText().toString());
            editor.putString("email",email.getText().toString());
            editor.commit();
            Intent intent = new Intent(reg.this, homepage.class);
            intent.putExtra("email", email.getText().toString());
            startActivity(intent);

        }

    }
    if(view==b1){
        Intent intent = new Intent(reg.this, login.class);
        startActivity(intent);
        finish();

    }
}



protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (data != null && requestCode == 0 && data.getData() != null) {
        uri = data.getData();
        if (uri != null) {
            pic.setImageURI(uri);
            picName = System.currentTimeMillis() + "." + getFileExtension(uri);
        }
    }


}
private String getFileExtension(Uri uri) {
    ContentResolver cR = getContentResolver();
    MimeTypeMap mime = MimeTypeMap.getSingleton();
    return mime.getExtensionFromMimeType(cR.getType(uri));
}


public void ShowHidePass(View view) {

    if (view.getId() == R.id.show_pass_btn) {

        if (pass.getTransformationMethod().equals(PasswordTransformationMethod.getInstance())) {
            ((ImageView) (view)).setImageResource(R.drawable.showeye1);

            //Show Password
            pass.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
        } else {
            ((ImageView) (view)).setImageResource(R.drawable.showeye);

            //Hide Password
            pass.setTransformationMethod(PasswordTransformationMethod.getInstance());

        }
    }
}}

Error: E/StorageUtil: error getting token java.util.concurrent.ExecutionException: com.google.firebase.internal.api.FirebaseNoSignedInUserException: Please sign in before trying to get a token.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source