void sendImage(Bitmap bitmap){
StorageReference riversRef = mStorageRef.child("DrawRoomBacks").child(back_key+".jpg");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] data = baos.toByteArray();
UploadTask uploadTask = riversRef.putBytes(data);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle unsuccessful uploads
Log.d("업로드실패","!");
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@SuppressWarnings("VisibleForTests")
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
// taskSnapshot.getMetadata() contains file metadata such as size, content-type, and download URL.
Uri downloadUrl = taskSnapshot.getDownloadUrl();
Log.d("URL : ", String.valueOf(downloadUrl));
databaseReference.child("DrawRoomBacks").push().setValue(back_key);
}
});
}
저의 앱 코드중 일부입니다.
보시다시피 따로 UploadTask를 이용해서 업로드 합니다.
*아시겠지만 혹시나 말씀드립니다만, 파이어베이스에 이미지를 업로드할땐 실시간DB를 사용 할 수 없고, 저장소를 사용해야 합니다.