Почему список <String>не вставлен в базу данных Firebase Realtime - PullRequest
0 голосов
/ 01 октября 2019

Я создал приложение и хочу сохранить некоторые изображения в Firebase Storage, это работает нормально, эти изображения загружены, но я хочу сохранить их путь в базе данных, и эти значения не вставляются.

Позвольте мне показать вам, что я сделал:

Я не покажу вам всю функцию. Только код, который указывает на мою проблему.

List<String> picturesUrls = new ArrayList<String>(); //This is declared globaly

 buttonSigningUp.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                uploadFile(mProfilePic,"profilePicture");
                uploadFile(mIdPhoto,"idPicture");
                uploadFile(mCriminalRecord,"criminalRecordPicture");
                final List<String> pictureUrls = picturesUrls;

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

                                    pictureUrls

                            );
                            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();
                                        sendEmail(email, fullname);
                                        openLogin();

                                    }
                                }
                            });
                        }
                    }
                });



            }
        });

Загрузить файл Функция:

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();
                }
            });
        }

    }

И объект:



import java.util.List;

public class CarrierUser {

    public List<String> picturesUrls;


    public CarrierUser() {

    }

    public CarrierUser(List<String> picturesUrls) {
        this.picturesUrls = picturesUrls;
    }
}

У меня есть другие значения иполя, но они вставляются, только этот список с путями не является. Может быть, я сделал что-то не так, добавив путь к этому списку, но я не могу понять, что именно не так. Можете ли вы помочь мне? Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...