以数组列表或列表的形式从 firebase 存储中检索图像,然后将其发送到 firestore,稍后可以检索该图像以填充多个 img

2024-04-12

这些是下面定义的参考文献;

StorageReference strgRef;
FirebaseFirestore mfirestore;
ArrayList<String> files,status;
List<String> downloadedimages;
RecyclerView recview;
ImageView btn_upload;
myadapter adapter;

我有一个画廊意图,然后是activityforResults从图库中选择多个图像,代码将所选图像列表上传到cloud firebase存储,但我试图以 URI 的形式取回它,以便我可以发送这些 URI 来创建 firestore 集合,然后从 firestore 取回它以填充 imagesscroll 视图。[lets take an example of a product details page of amazon where multiple images of a product are displayed that is what I am trying to achieve with the above query]需要注意的是,我想使用我的手机上传这些图像。

没有错误,来自 Uri successlistener 的代码块不起作用,它也不记录从 firebase storage 获取的 URI。我想从存储中存储这些 URI,然后将其放入云 Firestore 中,其中包含一个包含这些图像 Uri 列表的集合。我正在寻找一个解决方案,它将帮助我将这些 URI 存储到 arraylist 或列表中,稍后可以将其发送到 Firestore 就是这样。谢谢阅读! –

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 69 && resultCode == RESULT_OK) {
        if (data.getClipData() != null) {
            for (int i = 0; i < data.getClipData().getItemCount(); i++) {

                Uri fileuri = data.getClipData().getItemAt(i).getUri();
                String filename = getfilenamefromuri(fileuri);
                files.add(filename);
                status.add("Loading");
                adapter.notifyDataSetChanged();

                final int index = i;
                StorageReference upload = strgRef.child("newimages").child(filename);
                upload.putFile(fileuri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        status.remove(index);
                        status.add(index, "upload completed");
                        adapter.notifyDataSetChanged();

                        //uris of stored images will be added to downloadimages list
                        StorageMetadata snapshotmetadata = taskSnapshot.getMetadata();
                        Task<Uri> downloadUrl = strgRef.child("newimages").getDownloadUrl();
                        downloadUrl.addOnSuccessListener(new OnSuccessListener<Uri>() {
                            @Override
                            public void onSuccess(Uri uri) {
                                while (uri != null) {
                                    final String imagesREf = uri.toString();
                                    downloadedimages.add(imagesREf);
                                    Toast.makeText(MainActivity2.this, "images loaded successfully", Toast.LENGTH_SHORT).show();
                                    Log.e("Firbase retrieved urls", downloadedimages.toString());
                                }

                            }
                        });
                    }
                });
            }
        }
    }
}

    StorageReference upload = strgRef.child("newimages").child(filename);
      upload.putFile(fileuri)
                        .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                            @Override
                            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                                Toast.makeText(MainActivity.this, "Upload successful", Toast.LENGTH_LONG).show();
    
    
                                Task<Uri> downloadUrl = strgRef.child("newimages").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                                    @Override
                                    public void onSuccess(Uri uri) {
                              final String imagesREf = uri.toString();
                                          
                           //here, directly store uri in firebase database or in firestore.   
                                        
                           mDatabaseRef.child("childName").setValue(imagesREf);

                          //or if you have model class use that to store in database


                                    UploaModel upload = new UploadModel("imageUrl",
                                        imagesREf);


                                    mDatabaseRef.child("childName").setValue(upload);
                                    }
                                });
    
    
    
                            }
                        })
                        .addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {
                                Toast.makeText(UploadMake.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                            }
                        });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以数组列表或列表的形式从 firebase 存储中检索图像,然后将其发送到 firestore,稍后可以检索该图像以填充多个 img 的相关文章

  • Android FragmentTransaction 自定义动画(未知动画师名称:Translate)

    我正在尝试让自定义动画与我的片段一起使用 我已按照在线教程进行操作 但出现以下错误 java lang RuntimeException 未知的动画师名称 翻译 动画的 XML 如下
  • 普罗米修斯指标 - 未找到

    我有 Spring Boot 应用程序 并且正在使用 vertx 我想监控服务和 jvm 为此我选择了 Prometheus 这是我的监控配置类 Configuration public class MonitoringConfig Bea
  • HERE 地图:更改路线已行驶部分的颜色

    导航时可以改变路线的颜色吗 具体来说 我希望路线中已行驶的部分的颜色与即将行驶的部分的颜色不同 现在都是同一个颜色 将 MapRoute 对象的 TravelColor 变量设置为透明对我来说很有效 mapRoute color Resou
  • 编辑文件名在 JComboBox 中的显示方式,同时保持对文件的访问

    我对 Java 很陌生 对堆栈溢出也很陌生 我正在尝试利用 JMF API 创建一个用 Java 编码的简单媒体播放器 到目前为止 我已经能够设置一个简单的队列 播放列表来使用JComboBox called playListHolder
  • 如何修改 Skobbler 注释而不重新添加它

    我必须修改 SKAnnotation 的图像 注释生成器代码 private SKAnnotation getAnnotationFromView int id int minZoomLvl View view SKAnnotation a
  • java.lang.NumberFormatException: Invalid int: "3546504756",这个错误是什么意思?

    我正在创建一个 Android 应用程序 并且正在从文本文件中读取一些坐标 我在用着Integer parseInt xCoordinateStringFromFile 将 X 坐标转换为整数 Y 坐标的转换方法相同 当我运行该应用程序时
  • 按钮 - 单击时更改背景颜色

    我的活动中有 8 个按钮 我正在寻找的是 按钮具有默认背景 单击按钮时 背景颜色应更改为其他颜色 这部分非常简单 但是 当我单击任何其他按钮时 第一个按钮的背景颜色应该变回默认颜色 我知道这将使用 选择器状态 来完成 但我不太确定如何实现它
  • Cucumber Java 与 Spring Boot 集成 - Spring @Autowired 抛出 NullPointer 异常

    我正在为 Spring boot 应用程序编写 cucumber java 单元测试来测试每个功能 当我与 Spring Boot 集成时 Autowired 类抛出 NullPointer 异常 Spring Boot应用程序类 Spri
  • Android:监听状态栏通知

    有没有办法在状态栏被下拉时监听通知 1 用于检测状态栏变化 您可以注册一个监听器来获取系统UI可见性变化的通知 因此 要在您的活动中注册侦听器 Detecting if the user swipe from the top down to
  • Fortran 子例程返回错误值

    嘿 我正在开发一个 Fortran 程序 遇到了一个奇怪的问题 当我尝试在调用特定子例程之前直接输出数组的某些值时 我得到了正确的值 然后 我尝试在启动子例程时输出同一数组的一些值 它们都是 0 我最终在子例程之后输出数组的值 并且这些值回
  • Android:RecyclerView 不显示片段中的列表项

    有人可以帮我尝试让我的 RecyclerView 出现吗 如果我不在片段中实现它 就会出现这种情况 然而 当我尝试将其实现到片段中时 CarFront 中的其他 XML 代码与 RecyclerView 分开显示 我的日志中收到此错误 E
  • 替换后增量

    我自己已经有一个问题了 但我想扩展它后增量示例 https stackoverflow com questions 51308967 post increment with example char a D int b 5 System o
  • 在 KitKat 4.4.2 中获取 SDard 路径和大小

    我在 Google Play 上有一个设备信息应用程序 在该应用程序中我有存储信息 我知道 Android 4 4 在访问外部 SD 卡方面发生了一些变化 内部似乎没有给我带来问题 我的问题是 如何可靠地获取 KitKat 上 SD 卡的大
  • Android studio - 如何查找哪个库正在使用危险权限?

    我正在尝试将 apk 上传到 google play 商店 但令我惊讶的是 我正在使用以下权限 Your APK is using permissions that require a privacy policy android perm
  • Java中的Object类是什么?

    什么是或什么类型private Object obj Object http download oracle com javase 6 docs api java lang Object html是Java继承层次结构中每个类的最终祖先 从
  • spring中如何使用jackson代替JdkSerializationRedisSerializer

    我在我的一个 Java 应用程序中使用 Redis 并且正在序列化要存储在 Redis 中的对象列表 但是 我注意到使用 RedisTemplate 会使用 JdkSerializationRedisSerializer 相反 我想使用 J
  • Eclipse 中 Spring MVC 模型对象的 (jsp /jstl) 视图中的代码辅助

    在 Spring MVC 中 当将对象放置在视图模型中时 如下所示 public String getUser Model model fetch user model addAttribute user user return viewN
  • 使用 JobScheduler API 进行位置更新

    下面是我使用 FireBaseJobDispatcher 启动作业的演示代码 public class MainActivity extends AppCompatActivity Override protected void onCre
  • 如何从 Maven 存储库引用本机 DLL?

    如果 JAR 附带 Maven 存储库中的本机 DLL 我需要在 pom xml 中放入什么才能将该 DLL 放入打包中 更具体地举个例子Jacob http search maven org artifactdetails 7Cnet s
  • Android 中带有组的列表视图

    我有一个列表视图 每行都有一些日期和文本 我可以像 iPhone 中那样将这个 listView 分组 组之间有标题吗 在 android 中是否可能 请帮忙 即 我需要在 Listview 行之间有标题栏 以便如果我使用日期对其进行分组

随机推荐