【问题标题】:When I upload image to Firebase, image url from Database Realtime is different image url from firebase storage当我将图像上传到 Firebase 时,来自 Database Realtime 的图像 url 与 firebase 存储中的图像 url 不同
【发布时间】:2017-12-03 09:25:49
【问题描述】:

这是我的代码,我不知道为什么 getDownloadUrl() 给出的结果与存储中的图像 url 不同。

final Uri imageUri = data.getData();

        String current_user_id = mCurrentUser.getUid();

        mProgressUpload.setMessage("Uploading Image...");
        mProgressUpload.setCanceledOnTouchOutside(true);
        mProgressUpload.show();

        final StorageReference filepath = mImgStorage.child("cover_images").child(current_user_id + ".jpg");

        filepath.putFile(imageUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {

                @SuppressWarnings("VisibleForTests") final
                String download_url = task.getResult().getDownloadUrl().toString();

                UploadTask uploadTask = filepath.putFile(imageUri);
                uploadTask.addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {

                        if(task.isSuccessful()) {

                            Map updateHashmap = new HashMap<>();
                            updateHashmap.put("cover", download_url);

                            mUserDatabase.updateChildren(updateHashmap).addOnCompleteListener(new OnCompleteListener() {
                                @Override
                                public void onComplete(@NonNull Task task) {
                                    if (task.isSuccessful()) {
                                        mProgressUpload.dismiss();
                                        Toast.makeText(ProfileSetting.this, "Update successful", Toast.LENGTH_SHORT).show();
                                    } else {
                                        Toast.makeText(ProfileSetting.this, "Update failed", Toast.LENGTH_SHORT).show();
                                        mProgressUpload.dismiss();
                                    }
                                }
                            });
                        }
                    }
                });
            }
        });

Image URL from Realtime Database

Image URL from Firebase Storage

你能解决这个吗???

【问题讨论】:

  • “消息”:“权限被拒绝。无法执行此操作”。添加打印屏幕或更改权限。
  • @Alex Mamo 编辑了新的链接网址
  • 请告诉我们您显示图片的代码。
  • 这只是 imageView,兄弟 :)) 我使用 Picasso 并将图像从数据库加载到此。

标签: firebase firebase-realtime-database firebase-storage


【解决方案1】:

这是不同的,因为当您将图像上传到 Firebase Storage 时,您使用的 URL 与将 URL 添加到 Firebase Database 时使用的 URL 不同。第一次使用imageUri,第二次使用download_url,这显然是不一样的。所以为了解决这个问题,把你上传到存储中的文件的url,当你添加到数据库时使用它。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 2017-09-25
    • 2016-10-08
    • 1970-01-01
    相关资源
    最近更新 更多