android - Firebase 跨进程连续上传不起作用

标签 android firebase-storage

我已经尝试了几个小时来解决问题所在,为什么在我重新启动应用程序后图像上传没有恢复..

一旦我选择图像并开始上传,它将 session Uri 和本地 getData uri 值设置为共享首选项:

 .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                            pBar.setVisibility(View.VISIBLE);
                            @SuppressWarnings("VisibleForTests") Uri sessionUri = taskSnapshot.getUploadSessionUri();
                            if (sessionUri != null && uploading == null) {
                                editor.putString("upload",  sessionUri.toString()).commit();
                                editor.putString("local", selectedImageUri.toString()).commit();
                                editor.putString("ref", key).commit();
                            }

                            //calculating progress percentage
                            @SuppressWarnings("VisibleForTests") int bytesTransferred = (int) taskSnapshot.getBytesTransferred();
                            @SuppressWarnings("VisibleForTests") int totalBytes = (int) taskSnapshot.getTotalByteCount();
                            int progress = (100 *  bytesTransferred) / totalBytes ;

                            pBar.setProgress(progress);
                            System.out.println("Uploading: " + progress);
                        }
                    });

现在,如果我要终止该应用程序,共享引用中的值将被保存,但即使调用该函数来恢复上传,也什么也不会发生。

 uploadTask = riversRef.putFile(Uri.parse(uploadingLocal),
                        new StorageMetadata.Builder().build(), Uri.parse(uploading));

我曾尝试使用 uploadTask.pause();uploadTask.notify(); 但什么也没有。

我真的不知道问题是什么..

最佳答案

我将该函数从 onActivityResult() 移到了一个单独的 void 函数中。

现在,当我调用我刚刚创建的函数时,我收到了 permission.MANAGE_DOCUMENTS 错误,这将我指向了 this回答..所以基本上我的uri是导致问题的原因。使用修改后的 Intent 重新启动应用程序后,上传将恢复。

关于android - Firebase 跨进程连续上传不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43989544/

相关文章:

Android Market 多个 APK... 不同的 CPU 架构怎么样?

javascript - Promise.all 未按预期工作 - Firebase

android - 检测 Google Cast 的使用情况

android - 如何将一个按钮置于另外两个按钮之间?

android - ActionBar 边框在覆盖时不会消失

node.js - Firebase 函数(用 NodeJS 编写)在从实时数据库中删除对象时从云存储中删除文件

firebase - 如何在 flutter 中捕获 StorageException

java - 使用 Google Cloud Storage 从 Firebase 存储中删除文件夹

ios - 如何实时观察 firebase 存储的变化并更新 viewcontroller?

android - 为什么 camerax 示例项目不将常量放入类中?