关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。
两天前关门了。
改进这个问题
我正在firebase中注册一个用户,其中包含一般详细信息(即姓名、电子邮件、dob、密码、确认密码)和dp。当用户忘记选择dp并填充firebase中存储的数据字段以外的所有其他字段时,用户不能用同一电子邮件注册自己。如何设置if-else条件来检查用户是否选择了dp,以便程序立即终止,其他数据无法存储到数据库中。
我的java代码是。。。
package Activities;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.ContentResolver;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.webkit.MimeTypeMap;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.example.connectsocialmediaapp.R;
import com.google.android.gms.tasks.Continuation;
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.firestore.FirebaseFirestore;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
import de.hdodenhof.circleimageview.CircleImageView;
public class RegisterPage extends AppCompatActivity {
//XML objects
private CircleImageView profileIV;
private RadioButton objectRadioButton;
private EditText userFullName, userEmail, userPassword, userRetypePassword;
private TextView userDOB;
private Button GetregistrationBtn;
private RadioGroup objectRadioGroup;
//Class Variables
private String finalPassword;
Uri profileImageURL;
static int REQUEST_CODE = 1;
private int radioID;
private DatePickerDialog.OnDateSetListener objectOnDateSetListener;
private Dialog objectDialog;
//Firebase Variables
private FirebaseFirestore objectFirebaseFirestore;
private FirebaseAuth objectFirebaseAuth;
private StorageReference objectStorageReference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
objectDialog=new Dialog(this);
objectDialog.setContentView(R.layout.please_wait_dialog);
setContentView(R.layout.activity_register_page);
attachXMLObjectsToJava();
objectFirebaseFirestore = FirebaseFirestore.getInstance();
objectFirebaseAuth = FirebaseAuth.getInstance();
objectStorageReference = FirebaseStorage.getInstance().getReference("ImageFolder");
GetregistrationBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CreateUser();
}
});
}
private void CreateUser() {
try {
if (objectFirebaseAuth.getCurrentUser() != null) {
objectFirebaseAuth.signOut();
} if (objectFirebaseAuth.getCurrentUser() == null && !userFullName.getText().toString().isEmpty()
&& !userEmail.getText().toString().isEmpty() && !userPassword.getText().toString().isEmpty())
{
if (userPassword.getText().toString().equals(userRetypePassword.getText().toString()))
{
//Toast.makeText(this, "Registering the user", Toast.LENGTH_SHORT).show();
objectDialog.show();
finalPassword = userPassword.getText().toString();
objectFirebaseAuth.createUserWithEmailAndPassword(
userEmail.getText().toString(), finalPassword
).addOnSuccessListener(new OnSuccessListener<AuthResult>() {
@Override
public void onSuccess(AuthResult authResult) {
uploadUserData();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
objectDialog.dismiss();
Toast.makeText(RegisterPage.this, "Fails to create the user!:" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
else
{
Toast.makeText(this, "Password did not match!", Toast.LENGTH_SHORT).show();
}
}
else
{
Toast.makeText(this, "Please check user data fields and user profile image", Toast.LENGTH_SHORT).show();
}
}
catch (Exception e)
{
objectDialog.dismiss();
Toast.makeText(this, "RegistrationPage:" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
private void uploadUserData()
{
try
{
if(profileImageURL!=null)
{
String imageName=userFullName.getText().toString()+"."+ getExtension(profileImageURL);
final StorageReference imageRef = objectStorageReference.child(imageName);
// Toast.makeText(this, "Uploading user profile pic", Toast.LENGTH_SHORT).show();
UploadTask objectUploadTask =imageRef.putFile(profileImageURL);
objectUploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
if(!task.isSuccessful())
{
objectDialog.dismiss();
Toast.makeText(RegisterPage.this, task.getException().toString(), Toast.LENGTH_SHORT).show();
throw task.getException();
}
return imageRef.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if(task.isSuccessful())
{
Toast.makeText(RegisterPage.this, "Uploading user information", Toast.LENGTH_SHORT).show();
Map<String,Object> objectMap=new HashMap<>();
objectMap.put("profileimageurl", task.getResult().toString());
objectMap.put( "username" ,userFullName.getText().toString());
objectMap.put( "useremail" ,userEmail.getText().toString());
objectMap.put( "userpassword" ,userPassword.getText().toString());
objectMap.put( "userretypepassword" ,userRetypePassword.getText().toString());
objectMap.put( "userdob" ,userDOB.getText().toString());
radioID=objectRadioGroup.getCheckedRadioButtonId();
objectRadioButton=findViewById(radioID);
objectMap.put("noofemotions" , 0);
objectMap.put("gender",objectRadioButton.getText().toString());
objectMap.put("noofimagestatus",0);
objectMap.put("nooftextstatus",0);
objectMap.put("usercity","NA");
objectMap.put("usercountry", "NA");
objectMap.put("userbio", "NA");
objectFirebaseFirestore.collection("userProfileData")
.document(userEmail.getText().toString()).set(objectMap).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
objectDialog.dismiss();
Toast.makeText(RegisterPage.this, "User is registered!", Toast.LENGTH_SHORT).show();
if(objectFirebaseAuth.getCurrentUser()!=null)
{
objectFirebaseAuth.signOut();
}
startActivity(new Intent(RegisterPage.this,LoginPage.class));
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
objectDialog.dismiss();
Toast.makeText(RegisterPage.this, "Registeration Failed!"+e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
else if(!task.isSuccessful()){
Toast.makeText(RegisterPage.this,task.getException().toString(), Toast.LENGTH_SHORT).show();
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
objectDialog.dismiss();
Toast.makeText(RegisterPage.this,e.getMessage().toString(), Toast.LENGTH_SHORT).show();
}
});
}
else{
objectDialog.dismiss();
Toast.makeText(this, "Please choose profile pic", Toast.LENGTH_SHORT).show();
}
}
catch(Exception e)
{
Toast.makeText(this, "RegistrationPage:" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
private String getExtension(Uri uri) {
try {
ContentResolver objectContentResolver = getContentResolver();
MimeTypeMap objectMimeTypeMap = MimeTypeMap.getSingleton();
return objectMimeTypeMap.getExtensionFromMimeType(objectContentResolver.getType(uri));
} catch (Exception e) {
Toast.makeText(this, "RegistrationPage:" + e.getMessage(), Toast.LENGTH_SHORT).show();
return null;
}
}
private void chooseDOB()
{
try
{
Calendar objectCalender=Calendar.getInstance();
int year = objectCalender.get(Calendar.YEAR);
int month= objectCalender.get(Calendar.MONTH);
int day=objectCalender.get(Calendar.DAY_OF_MONTH);
DatePickerDialog objectDatePickerDialog = new DatePickerDialog(this,
android.R.style.Theme_Holo_Light_Dialog_MinWidth, objectOnDateSetListener,year,month,day);
objectDatePickerDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
objectDatePickerDialog.show();
objectOnDateSetListener=new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
month++;
userDOB.setText(dayOfMonth+"-"+month+"-"+year);
}
};
}
catch (Exception e)
{
Toast.makeText(this, "RegisterPage:"+e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
private void attachXMLObjectsToJava() {
try {
profileIV = findViewById(R.id.RegistrationPage_ProfileCircleImage);
userFullName = findViewById(R.id.RegistrationPage_FullName);
userEmail = findViewById(R.id.RegistrationPage_Email);
userPassword = findViewById(R.id.RegistrationPage_Password);
userRetypePassword = findViewById(R.id.RegistrationPage_Confirm_Password);
userDOB = findViewById(R.id.RegistrationPage_DOB);
GetregistrationBtn = findViewById(R.id.RegistrationPage_GetRegister_Btn);
objectRadioGroup = findViewById(R.id.RegistrationPage_Radio_Group);
profileIV.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
view.setClickable(true);
view.setOnClickListener(this);
chooseImageFromMobile();
}
});
userDOB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setClickable(true);
v.setOnClickListener(this);
chooseDOB();
}
});
} catch (Exception e) {
Toast.makeText(this, "RegistrationPage:" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
private void chooseImageFromMobile() {
try
{
openMobileGallery();
} catch (Exception e) {
Toast.makeText(this, "RegistrationPage:" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
private void openMobileGallery ()
{
try
{
Intent galleryIntent = new Intent(Intent.ACTION_GET_CONTENT);
galleryIntent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
startActivityForResult(galleryIntent, REQUEST_CODE);
}
catch (Exception e)
{
Toast.makeText(this, "RegistrationPage:" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
{
try {
if (data.getData() != null && data != null) {
profileImageURL = data.getData();
profileIV.setImageURI(profileImageURL);
}
else{
Toast.makeText(this, "No Image is selected!", Toast.LENGTH_SHORT).show();
}
}
catch(Exception e)
{
objectDialog.dismiss();
Toast.makeText(RegisterPage.this,e.getMessage().toString(), Toast.LENGTH_SHORT).show();
}
}
}
}
暂无答案!
目前还没有任何答案,快来回答吧!