Recommand · June 2, 2021 0

Retrieving Base64 encoded Image from Firebase and show it on Android App

I’m trying to retrieve a Base64 encoded image from Firebase and show it on an App developed in Android Studio. The code is putting something on the ImageView element, but I think that is just a white image, because the background of the ImageView element just disappears. Can someone help?

public class MainActivity extends AppCompatActivity {

    private Button setting;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageView image = (ImageView) findViewById(R.id.CamaraImage);
        FirebaseDatabase.getInstance().getReference().child("photos").child("realtime").child("-MbB__vRH7wrFXqL_8UO").child("photo").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                String imagestr = dataSnapshot.getValue(String.class);
                String imageclean = imagestr.replace("data:image/jpeg;base64,", "");
                //64Base to BitMap Conversion
                byte[] decodedString = Base64.decode(imageclean, Base64.DEFAULT);
                Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
                image.setImageBitmap(decodedByte);
                //Toast.makeText(MainActivity.this, imageclean, Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onCancelled(DatabaseError error) {
                // Failed to read value
                Log.w(TAG, "Failed to read value.", error.toException());
            }
        });
}