Как поместить изображение из базы данных Firebase Realtime в базу данных телефона - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь взять изображение из 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));
}

1 Ответ

0 голосов
/ 14 января 2019

Внутри onSuccess(UploadTask.TaskSnapshot taskSnapshot) продолжайте получать URL изображения:

  uploadTask.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                    @Override
                    public void onSuccess(Uri uri) {
                        String imageUri = uri.toString(); 
                     //image url you can store in database

                    }
                })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...