файл всегда сохраняется в базе данных с именем null - PullRequest
0 голосов
/ 09 июня 2019

Когда я пытаюсь сохранить файл в хранилище Firebase, он всегда сохраняет его с именем 'null'. Это мой код:

 try {
localFile = createTempImageFile(getExternalCacheDir());
final File finalLocalFile = localFile;

mStorageRef.child("images/" + mRereference).getFile(localFile)
        .addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
                Picasso.with(getBaseContext())
                        .load(Uri.fromFile(finalLocalFile))
                        .into(mIVpicture1);
            }
        }).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception e) {
        Log.i("Load","" + e);
    }
});

} catch (IOException e) {
e.printStackTrace();
}

Это метод createTempImageFile, который не работает:

       public static File createTempImageFile(File storageDir) throws 
IOException 
{

String timeStamp = new SimpleDateFormat("dd-MM-yyyy hh-mm-ss", 
Locale.getDefault()).format(new Date());
String imageFileName = "photo_" + timeStamp;


return File.createTempFile(
        imageFileName,
    ".jpg",
    storageDir
);
}

Это код для загрузки изображения в хранилище Firebase

    public void uploadFileInFireBaseStorage (Uri uri){
    UploadTask uploadTask = mStorageRef.child("images/" + mRereference).putFile(uri);
    uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
        @Override
        public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
            double progress = (100.0 * taskSnapshot.getBytesTransferred());
            Log.i("Load","Upload is " + progress + "% done");
        }
    }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
        @Override
        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
            Task<Uri> urlTask = taskSnapshot.getStorage().getDownloadUrl();
            while (!urlTask.isSuccessful());
            Uri downloadUrl = urlTask.getResult();

            final String download_url = String.valueOf(downloadUrl);
            Log.i("Load" , "Uri donwnload" + download_url);
        }
    });
}
...