Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Glide加载Firebase存储映像是否会产生计费费用?_Firebase_Firebase Storage - Fatal编程技术网

使用Glide加载Firebase存储映像是否会产生计费费用?

使用Glide加载Firebase存储映像是否会产生计费费用?,firebase,firebase-storage,Firebase,Firebase Storage,我想知道我在应用程序中执行的此操作是否会产生Firebase存储的费用。就是, 如果不考虑我执行以下操作的时间,它将在Firebase账单中产生一些费用 我将图像存储在存储器中,并使用Glide库将这些图像上载到ImageView,如下所示: Uri url = Uri.parse(pictureUser); Glide.with(MainActivity.this).load(url).into(imageView); 我有一个聊天应用程序,在适配器上的每条消息中,我想用Glide以这种方式

我想知道我在应用程序中执行的此操作是否会产生Firebase存储的费用。就是, 如果不考虑我执行以下操作的时间,它将在Firebase账单中产生一些费用

我将图像存储在存储器中,并使用Glide库将这些图像上载到ImageView,如下所示:

Uri url = Uri.parse(pictureUser);
Glide.with(MainActivity.this).load(url).into(imageView);

我有一个聊天应用程序,在适配器上的每条消息中,我想用Glide以这种方式上传用户的照片,因此,由于有很多上传,我想知道是否每次我运行此代码片段时,它都会产生firebase的一些账单费用。

每当您的代码下载文件时,它将被计费为云存储的出口


使用Glide时,默认情况下它将作为磁盘缓存启用,因此它应该只下载一次URL并从缓存中重用它(只要它仍在缓存中)。这不会收费,因为它不会从云端下载任何东西。

任何时候,您的代码下载文件时,它都会作为云存储的出口收费


使用Glide时,默认情况下它将作为磁盘缓存启用,因此它应该只下载一次URL并从缓存中重用它(只要它仍在缓存中)。这不会收费,因为它不会从云端下载任何内容。

当您在聊天活动中使用此功能时,这意味着可能会多次加载相同的图像。 要减少下载的图像数量,我建议您使用,而不是:

 Glide.with(MainActivity.this).load(url).into(imageView);
替换为:

Glide.with(MainActivity.this)
      .load(url).diskCacheStrategy(DiskCacheStrategy.DATA)
      .into(imageView);
这样,您就激活了缓存模式。这意味着Glide将在缓存中搜索(如果存在),然后将从互联网上传。

我建议你用毕加索而不是滑翔。它在脱机模式下比在滑动模式下工作得更好:

Picasso.with(MainActivity.this)
                    .load(url)
                    .networkPolicy(NetworkPolicy.OFFLINE)
                    .into(imageView, new Callback() {
                        @Override
                        public void onSuccess() {

                        }

                        @Override
                        public void onError() {
                            // Try again online if cache failed
                            Picasso.with(MainActivity.this)
                                    .load(url)
                            .error(R.drawable.user_placeholder_error)
                                    .into(imageView);
                        }
                    }); 

当您在聊天活动中使用此功能时,这意味着可能会多次加载同一图像。 要减少下载的图像数量,我建议您使用,而不是:

 Glide.with(MainActivity.this).load(url).into(imageView);
替换为:

Glide.with(MainActivity.this)
      .load(url).diskCacheStrategy(DiskCacheStrategy.DATA)
      .into(imageView);
这样,您就激活了缓存模式。这意味着Glide将在缓存中搜索(如果存在),然后将从互联网上传。

我建议你用毕加索而不是滑翔。它在脱机模式下比在滑动模式下工作得更好:

Picasso.with(MainActivity.this)
                    .load(url)
                    .networkPolicy(NetworkPolicy.OFFLINE)
                    .into(imageView, new Callback() {
                        @Override
                        public void onSuccess() {

                        }

                        @Override
                        public void onError() {
                            // Try again online if cache failed
                            Picasso.with(MainActivity.this)
                                    .load(url)
                            .error(R.drawable.user_placeholder_error)
                                    .into(imageView);
                        }
                    }); 

这有点让人困惑,我认为这行Glide代码没有下载图像,它只是将互联网上URL的图像放在imageView上。但是,由于此代码会产生存储费用,如果恶意用户拥有存储照片的URL并多次执行此代码(以某种方式,他不会留在缓存中),它还会在我的Firebase项目中产生费用吗?Glide如何在不下载URL的情况下填充imageview?是的,一个恶毒的人可能会付出很多代价。这对所有可公开访问的云产品都是如此。这有点令人困惑,我认为这行Glide代码没有下载图像,它只是将互联网上URL的图像放在imageView上。但是,由于此代码会产生存储费用,如果恶意用户拥有存储照片的URL并多次执行此代码(以某种方式,他不会留在缓存中),它还会在我的Firebase项目中产生费用吗?Glide如何在不下载URL的情况下填充imageview?是的,一个恶毒的人可能会付出很多代价。这对于所有可公开访问的云产品都是如此。我从缓存中不知道这一点,我可能会切换到您的代码,谢谢,Akram!阿克兰,我决定继续使用Glide。你知道我如何通过Glide检查图像是否由缓存加载吗?这样我就可以确认它正在正确恢复,而无需再次下载图像。是的,只需关闭internet,您就会注意到图像仍在加载,但使用我在帖子中输入的代码,在internet关闭的情况下,图像始终正常加载,没有.diskCacheStrategyGlide的最新版本默认情况下使用“DiskCacheStrategy.DATA”保存在缓存中。我从缓存中不知道它,我可能会切换到您的代码,谢谢,Akram!阿克兰,我决定继续使用Glide。你知道我如何通过Glide检查图像是否由缓存加载吗?这样我就可以确认它正在正确恢复,而无需再次下载图像。是的,只需关闭internet,您就会注意到图像仍在加载,但使用我在帖子中输入的代码,在internet关闭的情况下,图像始终正常加载,没有.DiskCacheStrategy最新版本的Glide默认情况下使用“DiskCacheStrategy.DATA”保存在缓存中