android - 无法显示 Firebase 存储中的图像

标签 android firebase firebase-storage

我正在使用新的 Firebase 存储并上传图像,然后获取下载网址。将下载网址转换为字符串后,我使用它在我的 Activity 中显示,但它只显示下载网址。 我使用下面的代码上传图像并获取下载网址:

    dialogBuilder.setTitle("Add Shop");
    dialogBuilder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            //do something with edt.getText().toString();

            Uri image_uri = getImageUri();
            enteredShopName = shopName.getText().toString();
            enteredShopDescription = shopDescription.getText().toString();

            FirebaseStorage storage = FirebaseStorage.getInstance();
            // Create a storage reference from our app
            StorageReference storageRef = storage.getReferenceFromUrl("gs://myapp.com");
            StorageReference imagesRef = storageRef.child("shop_images");
            StorageReference selectimage_ref = imagesRef.child(image_uri.getLastPathSegment());

            // upload file to firebase storage
            selectimage_ref.putFile(image_uri).
            addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    Uri download_url = taskSnapshot.getDownloadUrl();
                    String string_download_url = download_url.toString();
                    Shop shop = new Shop(enteredShopName, enteredShopDescription,string_download_url);
                    listRef.push().setValue(shop, new DatabaseReference.CompletionListener() {
                        @Override
                        public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
                            if (databaseError != null) {
                                Log.e(TAG, "Failed to write message", databaseError.toException());
                            } else {
                                Toast.makeText(MainActivity.this, "Shop added successfully", Toast.LENGTH_SHORT).show();
                            }
                        }
                    });

                }
            });

获取网址后,我将其设置为显示图像:

        public void setImg_url(String string_download_url){
        TextView field = (TextView) mView.findViewById(R.id.tv_shopImg);
        field.setText(string_download_url);
    }

最佳答案

为了显示图像,您应该使用ImageView

您可以使用Picasso库在ImageView中显示图像。您只需将 url、uri 或资源传递给具有 ImageView 的 Picasso。

喜欢

Picasso.with(this).load(/* url of image */).into(/*your imageview id*/);

要使用 picasso,您需要在 Gradle 中添加以下内容

compile 'com.squareup.picasso:picasso:2.5.2'

查看此answer .

关于android - 无法显示 Firebase 存储中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37525131/

相关文章:

Python-firebase 与 firebase-storage 一起工作

javascript - 无法使用 web javascript 中的 html2canvas 将来自 firebase 存储的图像打印到 pdf 文件中

java - 有没有什么方法可以让我们与生成 Intent 并从扩展 IntentService 类的类发送 Intent 的类进行通信?

Android FCM 徽章在后台不工作

reactjs - Firebase + Next.js 无服务器,在 GCP 上 - 如何管理暂存、生产 + 本地

ios - Google Sign In SDK实例化VC为零

ios - 如何在不同 View 之间共享从 firebase 存储下载的图像?

java - 当我声明为浅色主题时,为什么我会得到深色主题?

javascript - 在 Android Webview 中加载远程 html 页面后添加 javascript 代码

java - 多张图片在电子邮件中共享