'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 |
|---|
