将图片发送到Firebase Android

时间:2016-05-25 23:29:11

标签: android image firebase base64

在我的应用中,用户可以在帖子中添加图片。我希望图片以String格式发送到Firebase,以便所有查看帖子的用户都可以访问它。我已经拥有它所以打开相机并保存图片并给出一个唯一的名称。我的问题在于将图像转换为base64字符串。

这就是我设置拍摄照片并保存的方法。字符串日期用于唯一文件名。

Intent imageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages");
            imagesFolder.mkdirs(); // <----


            File image = new File(imagesFolder, date + ".jpg");
            Uri uriSavedImage = Uri.fromFile(image);
            imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);

            startActivityForResult(imageIntent,0);

1 个答案:

答案 0 :(得分:0)

如果您的问题在于转换图片(当Bitmap返回某些内容时实际上是onActivityResult()图片),那么就有一种简单的方法可以做到这一点。首先,您必须将Bitmap转换为字节数组。你可以这样做:

// Retrieve your Bitmap here
ByteArrayOutputStream stream = new ByteArrayOutputStream();  
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); // 'bitmap' is the image returned
byte[] b = stream.toByteArray(); 

然后转换字节数组,只需使用提供的Android类:

String b64Image = Base64.encodeToString(b, Base64.DEFAULT);

然后,您可以使用您的方法将特定的String上传到Firebase,但这是一个示例:

mDatabase.child("users").child("image").setValue(b64Image);

这应该将编码后的Base64 String正确保存到Firebase。希望它有所帮助!