Java 什么是';com.google.firebase.database.DatabaseException:不支持序列化数组,请改用列表';什么意思?

Java 什么是';com.google.firebase.database.DatabaseException:不支持序列化数组,请改用列表';什么意思?,java,android,firebase,Java,Android,Firebase,主要 public class SignupCarrier extends AppCompatActivity { Button upProfile, upIDPhoto, upCriminalRecord, buttonSigningUp; private Uri mProfilePic, mIdPhoto,mCriminalRecord; FirebaseAuth mFirebaseAuth; List<String> picturesUrls = new Arra

主要


public class SignupCarrier extends AppCompatActivity {

Button upProfile, upIDPhoto, upCriminalRecord, buttonSigningUp;
private Uri mProfilePic, mIdPhoto,mCriminalRecord;

FirebaseAuth mFirebaseAuth;
    List<String> picturesUrls = new ArrayList<String>();



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);
        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) {

                uploadFile(mProfilePic,"profilePicture");
                uploadFile(mIdPhoto,"idPicture");
                uploadFile(mCriminalRecord,"criminalRecordPicture");
                picturesUrls.toArray(pictureUrls);


                mFirebaseAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if(task.isSuccessful()) {
                            final CarrierUser carrierUser = new CarrierUser(

                                    picturesUrls

                            );
                            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  String getFileExtension(Uri uri) {
        ContentResolver cR = getContentResolver();
        MimeTypeMap mime = MimeTypeMap.getSingleton();
        return mime.getExtensionFromMimeType(cR.getType(uri));
    }
    private void uploadFile(Uri path,String forWho) {

        if(path != null) {

            StorageReference fileReference = mStorageRef.child(editemail.getText().toString()+"-"+forWho+"-"+System.currentTimeMillis()+getFileExtension(path));
            mUploadTask = fileReference.putFile(path)
                    .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                          picturesUrls.add(taskSnapshot.getUploadSessionUri().toString());
                        }
                    })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Toast.makeText(SignupCarrier.this, e.getMessage(),Toast.LENGTH_LONG).show();
                }
            });
        }

    }
    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活动{
按钮上传文件,上传照片,上传刑事记录,按钮识别;
私人Uri mProfilePic、mIdPhoto、mCriminalRecord;
FirebaseAuth mFirebaseAuth;
List picturesUrls=new ArrayList();
私有存储参考mStorageRef;
专用存储任务mUploadTask;
私有静态最终整数选择图像请求配置文件=1;
私有静态最终整数选取图像请求ID=1;
私有静态最终整数选择图像请求CR=1;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u signup\u carrier);
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){
上传文件(mProfilePic,“profilePicture”);
上传文件(中间照片,“idPicture”);
上传文件(mCriminalRecord,“criminalRecordPicture”);
图片URL.toArray(图片URL);
mFirebaseAuth.createUserWithEmailAndPassword(电子邮件,密码).addOnCompleteListener(新OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
最终搬运器搬运器=新搬运器搬运器(
图片URL
);
FirebaseDatabase.getInstance().getReference(“用户”)
.child(FirebaseAuth.getInstance().getCurrentUser().getUid()).setValue(carrierUser).addOnCompleteListener(新OnCompleteListener()){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Toast.makeText(SignupCarrier.this,“您的请求已发送审批”,Toast.LENGTH_LONG.show();
openLogin();
}
}
});
}
}
});
}
});
私有字符串getFileExtension(Uri){
ContentResolver cR=getContentResolver();
MimeTypeMap mime=MimeTypeMap.getSingleton();
返回mime.getExtensionFromMimeType(cR.getType(uri));
}
私有void上传文件(Uri路径,who字符串){
if(路径!=null){
StorageReference fileReference=mStorageRef.child(editemail.getText().toString()+“-”+forWho+“-”+System.currentTimeMillis()+getFileExtension(path));
mUploadTask=fileReference.putFile(路径)
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
添加(taskSnapshot.getUploadSessionUri().toString());
}
})
.addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
Toast.makeText(SignupCarrier.this,e.getMessage(),Toast.LENGTH_LONG.show();
}
});
}
}
私有void openFileChooser(Uri urltoPhoto){
意图=新意图();
intent.setType(“image/*”);
intent.setAction(intent.ACTION\u GET\u CONTENT);
if(urltoPhoto==mProfilePic){
startActivityForResult(意图、拾取图像、请求配置文件);
}else if(urltoPhoto==mIdPhoto){
startActivityForResult(意图、拾取图像、请求ID);
}else if(urltoPhoto==mCriminalRecord){
startActivityForResult(意向、选择、图像、请求、确认);
}
}
@凌驾
受保护的void onActivityResult(int-requestCode、int-resultCode、@Nullable-Intent-data){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==PICK\u IMAGE\u REQUEST\u PROFILE&&resultCode==RESULT\u OK&&data!=null&&data.getData()!=null)
{
mProfilePic=data.getData();
}
if(requestCode==PICK\u IMAGE\u REQUEST\u ID&&resultCode==RESULT\u OK&&data!=null&&data.getData()!=null)
{
mIdPhoto=data.getData();
}
if(requestCode==PICK\u IMAGE\u REQUEST\u CR&&resultCode==RESULT\u OK&&data!=null&&data.getData()!=null)
{
mCriminalRecord=data.getData();
}
}
我得到了这个错误,只上传了3个文件中的2个到存储器,在数据库中用户丢失了。 在使用数组之前,我尝试使用L
public class CarrierUser {
    public List<String> picturesUrls;
public CarrierUser() {
}

public CarrierUser(List<String> picturesUrls) {
this.picturesUrls = picturesUrls;
}
}
String[] pictureUrls = new String[picturesUrls.size()];
List<String> picturesUrls = new ArrayList<String>();