当前位置: 首页 > 知识库问答 >
问题:

如何从firebase存储获取图像可下载url并存储在firebase数据库中?

禄源
2023-03-14
protected void onActivityResult(int requestCode, int resultCode, Intent 
data) {
    super.onActivityResult(requestCode, resultCode, data);


    if(requestCode == GALLERY_INTENT && resultCode == RESULT_OK)
    {
        progressDialog.setMessage("Uploading...");
        progressDialog.show();
        FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
        String userID = user.getUid();
        Uri uri = data.getData();
        ivProfilePicture.setImageURI(uri);

        StorageReference filepath = 
        storageReference.child("Photos").child(userID);

        filepath.putFile(uri).addOnSuccessListener(new 
        OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                Toast.makeText(EditProfile.this,"Upload 
            Done",Toast.LENGTH_SHORT).show();

                progressDialog.dismiss();

            }
        });

共有1个答案

梁马鲁
2023-03-14
    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

    String email = user.getEmail();
    String name = user.getDisplayName();
    String userName = "USER_NAME";   // set userName here...
    String id = user.getUid();

    Map<String,String> imageInfo = new HashMap<>();
    imageInfo.put("email", email);
    imageInfo.put("id", id);
    imageInfo.put("name", name);
    imageInfo.put("userName", userName);
    // inside OnSuccessListener

    DatabaseReference db = FirebaseDatabase.getInstance().getReference("Users");
    db.push().setValue(imageInfo);

    // this will add all information to your database...
    try {
        final File tmpFile = File.createTempFile("img", "png");
        StorageReference reference = FirebaseStorage.getInstance().getReference("Photos");

        //  "id" is name of the image file....

        reference.child(id).getFile(tmpFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {

                Bitmap image = BitmapFactory.decodeFile(tmpFile.getAbsolutePath());

                userImageView.setImageBitmap(image);

            }
        });
    } catch (Exception e) {
        e.printStackTrace();
    }
 类似资料:
  • 我想从FireBase的方法获取下载Url。如何使用以下代码获取下载Url? 我使用了,但这不起作用。

  • 当我的数据库用“photo_url”字段更新时,我想下载图像并将其保存到存储区

  • 所以,我想让用户同时上传多个图像到firebase存储。我已经成功地完成了这部分,但现在我想要取回图像。一开始,我上传一个图像给每个用户,并将图像id保存到实时数据库中,这样就很容易通过图像id检索回图像。但是现在我如何为每个用户保存多个图像到实时数据库我不能使用相同的子名,因为它将被替换为旧的。有什么想法吗?? 上载图像并在实时数据库上设置id: 我的firebase数据库:

  • 我要上传一张图片到firebase的存储器。我用的不是网页版存储(不应该用)。我正在使用firebase admin。没问题,我毫无困难地上传了文件,并在变量“file”中得到结果。 如果我访问firebase存储控制台,图像就在那里。好吧 现在,我有一些问题。 > < li> 为什么对< code>upload ()方法的响应有这么多信息和这么多对象?回顾这个巨大的对象,我在元数据中发现了一个名

  • 下面是我得到的控制台输出和错误: 下面是我按下Get Images按钮后的控制台输出,您可以看到图像的url为: