Reputation:
I am able to attach an image from gallery and send it to firebase. But I want to upload video from gallery to firebase. I have read documents for firebase but I could not find anything.
So has anyone done this before? Advanced help would be appreciated !
Code:
Here while select video from gallery and on activity result
if (resultCode == RESULT_OK) {
Uri selectedVideoUri = data.getData();
StorageMetadata metadata = new StorageMetadata.Builder()
.setContentType("video/mpeg")
.build();
if (selectedVideoUri == null) {
Log.e("selected video path", "null");
finish();
} else {
Log.v("selectedVideoPath", selectedVideoUri.toString());
if (selectedVideoUri != null) {
StorageReference videoGalleryRef = storageRefVideo.child(selectedVideoUri + "_video");
sendFileFirebaseVideo(videoGalleryRef, selectedVideoUri, metadata);
}
}
}
private void sendFileFirebaseVideo(StorageReference storageReference, final Uri file, final StorageMetadata metadata) {
if (storageReference != null) {
final String name = DateFormat.format("yyyy-MM-dd_hhmmss", new Date()).toString();
StorageReference videoGalleryRef = storageReference.child(name + "_video");
UploadTask uploadTask = videoGalleryRef.putFile(file, metadata);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e(TAG, "onFailure sendFileFirebase " + e.getMessage());
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Log.i(TAG, "onSuccess sendFileFirebase");
Uri downloadUrl = taskSnapshot.getDownloadUrl();
FileModel fileModel = new FileModel("video", downloadUrl.toString(), name, "");
ChatModel chatModel = new ChatModel(userModel, "", Calendar.getInstance().getTime().getTime() + "", fileModel);
mFirebaseDatabaseReference.child(CHAT_REFERENCE).push().setValue(chatModel);
}
});
} else {
}
}
Upvotes: 2
Views: 3695
Reputation: 3954
// Create instance of StorageReference
StorageReference storageRef = FirebaseStorage.getInstance().getReference();
final StorageReference photoRef = storageRef.child("FolderToCreate").child("NameYoWantToAdd");
// add File/URI
photoRef.putFile(Uri.fromFile(filename))
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
// Upload succeeded
Toast.makeText(getApplicationContext(), "Upload Success...", Toast.LENGTH_SHORT).show();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Upload failed
Toast.makeText(getApplicationContext(), "Upload failed...", Toast.LENGTH_SHORT).show();
}
}).addOnProgressListener(
new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
//calculating progress percentage
double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
//displaying percentage in progress dialog
progressDialog.setMessage("Uploaded " + ((int) progress) + "%...");
}
});
Upvotes: 2