Java 为什么它只上传了3张照片中的1张,而数据库没有';你不能得到所有的领域吗?

Java 为什么它只上传了3张照片中的1张,而数据库没有';你不能得到所有的领域吗?,java,android,firebase,firebase-storage,Java,Android,Firebase,Firebase Storage,我使用Firebase创建了一个android应用程序,我有3个按钮可以上传3张不同的图片。但当我提交请求时,它会上传第三张图像3次,数据库中的一些字段丢失。让我告诉你我做了什么: 这是用户模型: public class CarrierUser { public String fullname; public String email; public String password; public String address; public St

我使用Firebase创建了一个android应用程序,我有3个按钮可以上传3张不同的图片。但当我提交请求时,它会上传第三张图像3次,数据库中的一些字段丢失。让我告诉你我做了什么:

这是用户模型:


public class CarrierUser {


    public String fullname;
    public String email;
    public String password;
    public String address;
    public String city;
    public String state;
    public String zipcode;
    public String country;
    public String phone;

    public String cardnumber;
    public String expiredate;
    public String CVC;
    public String rate;
    public String type;
    public String profilePic;
    public String idPic;
    public String criminalRecordPic;
    public Boolean activated;

    public CarrierUser() {

    }

    public CarrierUser(String fullname, String email, String password, String address, String city, String state, String zipcode, String country, String phone, String cardnumber, String expiredate, String CVC, String type, String rate, String profilePic, String idPic, String criminalRecordPic, Boolean activated) {
        this.fullname = fullname;
        this.email = email;
        this.password = password;
        this.address = address;
        this.city = city;
        this.state = state;
        this.zipcode = zipcode;
        this.country = country;
        this.phone = phone;
        this.cardnumber = cardnumber;
        this.expiredate = expiredate;
        this.CVC = CVC;
        this.type = type;
        this.rate = rate;
        this.profilePic = profilePic;
        this.idPic = idPic;
        this.criminalRecordPic = criminalRecordPic;
        this.activated = activated;
    }
}

这是注册课程,我知道有很多东西要读,但我真的需要帮助

public class SignupCarrier extends AppCompatActivity {
    EditText editfullname, editemail, editpassword, editconfirmpassword, editaddress, editcity, editstate, editzipcode, editcountry, editphone, editcardnumber, editexpiredate, editcvc;
Button upProfile, upIDPhoto, upCriminalRecord, buttonSigningUp;
private Uri mProfilePic, mIdPhoto,mCriminalRecord;
FirebaseAuth mFirebaseAuth;
    String finalPath;
private StorageReference mStorageRef;
private StorageTask mUploadTask;
    private static final int PICK_IMAGE_REQUEST_PROFILE = 1;
    private static final int PICK_IMAGE_REQUEST_ID = 1;
    private static final int PICK_IMAGE_REQUEST_CR = 1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_signup_carrier);

        editfullname = (EditText) findViewById(R.id.fullname);
        editemail = (EditText) findViewById(R.id.email);
        editpassword = (EditText) findViewById(R.id.password);
        editconfirmpassword = (EditText) findViewById(R.id.confirmpassword);
        editaddress = (EditText) findViewById(R.id.address);
        editcity = (EditText) findViewById(R.id.city);
        editstate = (EditText) findViewById(R.id.state);
        editzipcode = (EditText) findViewById(R.id.zipcode);
        editcountry = (EditText) findViewById(R.id.country);
        editphone = (EditText) findViewById(R.id.phone);



        editcardnumber = (EditText) findViewById(R.id.cardnumber);
        editexpiredate = (EditText) findViewById(R.id.expiredate);
        editcvc = (EditText) findViewById(R.id.cvc);

        mFirebaseAuth = FirebaseAuth.getInstance();
        upProfile = (Button) findViewById(R.id.profilePic);
        upIDPhoto = (Button) findViewById(R.id.idphotoPic);
        upCriminalRecord = (Button) findViewById(R.id.criminalRecord);
        buttonSigningUp = (Button) findViewById(R.id.buttonSigningUp);
        mStorageRef = FirebaseStorage.getInstance().getReference("carriersPictures");

        upProfile.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openFileChooser(mProfilePic);
            }
        });
        upIDPhoto.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openFileChooser(mIdPhoto);
            }
        });
        upCriminalRecord.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openFileChooser(mCriminalRecord);
            }
        });

        buttonSigningUp.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final String profilePictUri = uploadFile(mProfilePic);
                final String idPictUri = uploadFile(mIdPhoto);
                final String criminalRecordUri = uploadFile(mCriminalRecord);
                final String fullname = editfullname.getText().toString();
                final String email = editemail.getText().toString();
                final String password = editpassword.getText().toString();
                final String confirmPassword = editconfirmpassword.getText().toString();
                final String address = editaddress.getText().toString();
                final String city = editcity.getText().toString();
                final String state = editstate.getText().toString();
                final String zipcode = editzipcode.getText().toString();
                final String country = editcountry.getText().toString();
                final String phone = editphone.getText().toString();
                final String rate = "0";
                final String type = "carrier";
                final String cardnumber = editcardnumber.getText().toString();
                final String expiredate = editexpiredate.getText().toString();
                final String CVC = editcvc.getText().toString();
                String s = "none";
                if(fullname.isEmpty()) {
                    editfullname.setError("enter a valid fullname");
                    editfullname.requestFocus();
                    return;

                }
                if(email.isEmpty()) {
                    editemail.setError("enter a valid email");
                    editemail.requestFocus();
                    return;
                }
                if(password.isEmpty()) {
                    editpassword.setError("enter a valid password");
                    editpassword.requestFocus();
                    return;
                }
                if(confirmPassword.isEmpty()) {
                    editconfirmpassword.setError("this should not be empty");
                    editconfirmpassword.requestFocus();
                    return;
                }
                if(address.isEmpty()) {
                    editaddress.setError("enter a valid address");
                    editaddress.requestFocus();
                    return;
                }
                if(city.isEmpty()) {
                    editcity.setError("enter a valid city ");
                    editcity.requestFocus();
                    return;
                }
                if(state.isEmpty()) {
                    editstate.setError("enter a valid state/region");
                    editstate.requestFocus();
                    return;
                }
                if(zipcode.isEmpty()) {
                    editzipcode.setError("enter a valid zipcode");
                    editzipcode.requestFocus();
                    return;
                }
                if(country.isEmpty() ) {
                    editcountry.setError("enter a valid country");
                    editcountry.requestFocus();
                    return;
                }

                if(phone.isEmpty()) {
                    editphone.setError("enter a valid phone");
                    editphone.requestFocus();
                    return;
                }


                if(password.length() < 8){
                    editpassword.setError("password should be at least 8 characters long");
                    editpassword.requestFocus();
                    return;
                }
                if(!password.equals(confirmPassword)) {
                    editconfirmpassword.setError("passwords don't match");
                    editconfirmpassword.requestFocus();
                    return;
                }

                if(cardnumber.isEmpty()) {
                    editcardnumber.setError("enter a valid card number");
                    editcardnumber.requestFocus();
                    return;

                }

                if(expiredate.isEmpty())
                {
                    editexpiredate.setError("enter a valid expired date ");
                    editexpiredate.requestFocus();
                }
                if(CVC.isEmpty())
                {
                    editcvc.setError("enter a valid CVC ");
                    editcvc.requestFocus();
                }
                final boolean activated = false;
                mFirebaseAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if(task.isSuccessful()) {
                            CarrierUser carrierUser = new CarrierUser(
                                    fullname,
                                    email,
                                    password,
                                    address,
                                    city,
                                    state,
                                    zipcode,
                                    country,
                                    phone,
                                    cardnumber,
                                    expiredate,
                                    CVC,
                                    type,
                                    rate,
                                    profilePictUri,
                                    idPictUri,
                                    criminalRecordUri,
                                    activated

                            );
                            FirebaseDatabase.getInstance().getReference("User")
                                    .child(FirebaseAuth.getInstance().getCurrentUser().getUid()).setValue(carrierUser).addOnCompleteListener(new OnCompleteListener<Void>() {
                                @Override
                                public void onComplete(@NonNull Task<Void> task) {
                                    if(task.isSuccessful()) {
                                        Toast.makeText(SignupCarrier.this,"Your request has been sent for approval", Toast.LENGTH_LONG).show();
                                        openLogin();
                                    }
                                }
                            });
                        }
                    }
                });



            }
        });

    }

    private void openLogin() {
        Intent i = new Intent(SignupCarrier.this, screenNotLogged.class);
        startActivity(i);
    }
    private  String getFileExtension(Uri uri) {
        ContentResolver cR = getContentResolver();
        MimeTypeMap mime = MimeTypeMap.getSingleton();
        return mime.getExtensionFromMimeType(cR.getType(uri));
    }
    private String uploadFile(Uri path) {

        if(path != null) {

            StorageReference fileReference = mStorageRef.child(editfullname.getText().toString()+"-"+System.currentTimeMillis()+getFileExtension(path));
            mUploadTask = fileReference.putFile(path)
                    .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                            finalPath = taskSnapshot.getUploadSessionUri().toString();
                        }
                    })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Toast.makeText(SignupCarrier.this, e.getMessage(),Toast.LENGTH_LONG).show();
                }
            });
        }
        return finalPath;
    }
    private void openFileChooser( Uri urltoPhoto) {
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        if (urltoPhoto == mProfilePic) {
            startActivityForResult(intent, PICK_IMAGE_REQUEST_PROFILE);
        } else if (urltoPhoto == mIdPhoto) {
            startActivityForResult(intent, PICK_IMAGE_REQUEST_ID);
        } else if (urltoPhoto == mCriminalRecord) {
            startActivityForResult(intent, PICK_IMAGE_REQUEST_CR);
        }

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if(requestCode == PICK_IMAGE_REQUEST_PROFILE && resultCode == RESULT_OK && data != null && data.getData() != null)
        {
            mProfilePic = data.getData();


        }
        if(requestCode == PICK_IMAGE_REQUEST_ID && resultCode == RESULT_OK && data != null && data.getData() != null)
        {
            mIdPhoto = data.getData();


        }
        if(requestCode == PICK_IMAGE_REQUEST_CR && resultCode == RESULT_OK && data != null && data.getData() != null)
        {
            mCriminalRecord = data.getData();


        }
    }
}


公共类注册载体扩展AppCompative活动{
EditText editfullname、editemail、editpassword、editconfirmpassword、editaddress、editcity、editstate、editzipcode、editcountry、editphone、editcardnumber、editexpiredate、editcvc;
按钮上传文件,上传照片,上传刑事记录,按钮识别;
私人Uri mProfilePic、mIdPhoto、mCriminalRecord;
FirebaseAuth mFirebaseAuth;
字符串最终路径;
私有存储参考mStorageRef;
专用存储任务mUploadTask;
私有静态最终整数选择图像请求配置文件=1;
私有静态最终整数选取图像请求ID=1;
私有静态最终整数选择图像请求CR=1;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u signup\u carrier);
editfullname=(EditText)findViewById(R.id.fullname);
editemail=(EditText)findViewById(R.id.email);
editpassword=(EditText)findViewById(R.id.password);
editconfirmpassword=(EditText)findViewById(R.id.confirmpassword);
editaddress=(EditText)findViewById(R.id.address);
editcity=(EditText)findViewById(R.id.city);
editstate=(EditText)findViewById(R.id.state);
editzipcode=(EditText)findViewById(R.id.zipcode);
editcountry=(EditText)findViewById(R.id.country);
editphone=(EditText)findViewById(R.id.phone);
editcardnumber=(EditText)findViewById(R.id.cardnumber);
editexpiredate=(EditText)findViewById(R.id.expiredate);
editcvc=(EditText)findViewById(R.id.cvc);
mFirebaseAuth=FirebaseAuth.getInstance();
upProfile=(按钮)findViewById(R.id.profilePic);
upIDPhoto=(按钮)findViewById(R.id.idphotoPic);
upCriminalRecord=(按钮)findViewById(R.id.criminalRecord);
buttonSigningUp=(按钮)findViewById(R.id.buttonSigningUp);
mStorageRef=FirebaseStorage.getInstance().getReference(“carriersPictures”);
upProfile.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
openFileChooser(mProfilePic);
}
});
upIDPhoto.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
openFileChooser(中间照片);
}
});
upCriminalRecord.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
openFileChooser(mCriminalRecord);
}
});
buttonSigningUp.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
最终字符串profilePictUri=上传文件(mProfilePic);
最终字符串idPictUri=上传文件(mIdPhoto);
最终字符串criminalRecordUri=上传文件(mCriminalRecord);
最后一个字符串fullname=editfullname.getText().toString();
最终字符串email=editemail.getText().toString();
最终字符串密码=editpassword.getText().toString();
最后一个字符串confirmPassword=editconfirmpassword.getText().toString();
最终字符串地址=editaddress.getText().toString();
最后一个字符串city=editcity.getText().toString();
最终字符串状态=editstate.getText().toString();
最后一个字符串zipcode=editzipcode.getText().toString();
最后一个字符串country=editcountry.getText().toString();
最终字符串phone=editphone.getText().toString();
最终字符串速率=“0”;
最终字符串类型=“承运人”;
最终字符串cardnumber=editcardnumber.getText().toString();
final String expiredate=editexpiredate.getText().toString();
最后一个字符串CVC=editcvc.getText().toString();
字符串s=“无”;
if(fullname.isEmpty()){
setError(“输入有效的全名”);
editfullname.requestFocus();
返回;
}
if(email.isEmpty()){
editemail.setError(“输入有效电子邮件”);
editemail.requestFocus();
返回;
}
if(password.isEmpty()){
editpassword.setError(“输入有效密码”);
editpassword.requestFocus();
返回;
}
if(confirmPassword.isEmpty()){
editconfirmpassword.setError(“此项不应为空”);
editconfirmpassword.requestFocus();
返回;
}
if(address.isEmpty()){
setError(“输入有效地址”);
editaddress.requestFocus();
返回;
}
if(city.isEmpty()){
setError(“输入有效城市”);
editcity.requestFocus();
返回;
}
if(state.isEmpty()){
setError(“输入有效的状态/区域”);
editstate.requestFocus();
返回;
}
if(zipcode.isEmpty()){
editzipc