首页 > 解决方案 > FirebaseStorage Url 到 Imageview Android

问题描述

我已成功将图像上传到 FirebaseStorage,但在放入 imageview 时遇到了问题。以下是我的代码想法来自链接我似乎不知道我错了什么。很多指导表示赞赏。

mUploadTask = ref.putFile(imageUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {

            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                // Image uploaded successfully
                // Dismiss dialog
                progressDialog.dismiss();

                Task<Uri> result = taskSnapshot.getMetadata().getReference().getDownloadUrl();
                result.addOnSuccessListener(new OnSuccessListener<Uri>() {
                    @Override
                    public void onSuccess(Uri uri) {
                        String imageUrl = uri.toString();
                        Glide.with(CreateStory.this)
                                .load(new File(imageUrl)) // Uri of the picture
                                .into(mIvImage);

                added ........
               Log.w(TAG, "results... = " + imageUrl);
                    }
                });


                Toast.makeText(CreateStory.this, "Image Uploaded!!", Toast.LENGTH_SHORT).show();
            }
        }

下面的日志文件不为空,并且正在从 firebase 存储 url 结果返回 Url... = https://private...images%2Fdca96752-beeb-4331-8de0-1ad413b89b74?alt=media&token=98f30bec-aaa7 -4bbc-ba29-09c761d68cae

标签: androidfirebasefirebase-storage

解决方案


感谢@KasımÖzdemir 的指导,我成功地实现了我的目标。他/她也更正了我的代码。请参考下面的工作代码。干杯:)

       mUploadTask = ref.putFile(imageUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {

            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                // Image uploaded successfully
                // Dismiss dialog
                progressDialog.dismiss();

                ref.getDownloadUrl().addOnCompleteListener(new OnCompleteListener<Uri>() {
                    @Override
                    public void onComplete(@NonNull Task<Uri> task) {

                        // get firebase storage url
                        String profileImageUrl = task.getResult().toString();
                        Glide.with(CreateStory.this).load(profileImageUrl).into(mIvImage);
                        Log.w(TAG, "image url = " + profileImageUrl + " | imageUri = " + imageUri);
                    }
                });

                Toast.makeText(CreateStory.this, "Image Uploaded!!", Toast.LENGTH_SHORT).show();
            }
        })

推荐阅读