How to upload an image to Firebase storage?

前端 未结 5 1343
独厮守ぢ
独厮守ぢ 2021-01-04 07:55

I\'m trying to upload a simple byte array into Firebase storage, but my onFailureListener keeps getting called and logging back to me saying that the upload fai

5条回答
  •  猫巷女王i
    2021-01-04 08:31

    this method worked for me as if todate:

    private void uploadImage(Bitmap bitmap) {
        progressDialog.show();
        final StorageReference ref = storageReference.child("drivers/" + UserDto.getId() + ".jpg");
    
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 20, baos);
        byte[] data = baos.toByteArray();
    
        final UploadTask uploadTask = ref.putBytes(data);
        uploadTask.addOnSuccessListener(new OnSuccessListener() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                progressDialog.dismiss();
                Toast.makeText(ProfileActivity.this, "Uploaded", Toast.LENGTH_SHORT).show();
    
                uploadTask.continueWithTask(new Continuation>() {
                    @Override
                    public Task then(@NonNull Task task) throws Exception {
                        if (!task.isSuccessful()) {
                            throw task.getException();
                        }
                        return ref.getDownloadUrl();
                    }
                }).addOnCompleteListener(new OnCompleteListener() {
                    @Override
                    public void onComplete(@NonNull Task task) {
                        if (task.isSuccessful()) {
                            Uri downUri = task.getResult();
                            Log.d("Final URL", "onComplete: Url: " + downUri.toString());
                        }
                    }
                });
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                progressDialog.dismiss();
                Toast.makeText(ProfileActivity.this, "Failed " + e.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });
    }
    

提交回复
热议问题