Я пытаюсь взять изображение из Firebase
Realtime Database
и положить его в память телефона. Я увидел, что getDownloadUrl()
больше не поддерживается, и увидел, что в StackOverflow вы теперь должны загрузить URL, как я это делаю ниже. Все добавляет в базу данных, кроме profilepicUrl.
private void saveUserInfo()
{
if (profilePicUri != null)
{
// The file path to the Photo folder in firebase storage
StorageReference path = mStorageReference.child("Profile_Photo/Users/" + userId +".jpg");
// Change the Uri file to an image using a Bitmap
try
{
bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), profilePicUri);
}
catch (IOException e)
{
e.printStackTrace();
}
//Compress image size to save space
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 20, byteArrayOutputStream);
byte [] imageData = byteArrayOutputStream.toByteArray();
//Upload the image too Firebase Storage
UploadTask uploadTask = path.putBytes(imageData);
uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>()
{
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot)
{
Task<Uri> uri = taskSnapshot.getStorage().getDownloadUrl();
profilePicUrl = uri.toString();
}
});
}
Users user = new Users(firstName,lastName,username,profilePicUrl,level,steps,distanceWalked);
database.child(currentUser.getUid()).setValue(user);
// startActivity(new Intent(this, MainActivity.class));
}