Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
Java OnSuccess方法内的进度对话框,Firebase Firestore?_Java_Android_Android Studio_Google Cloud Firestore_Firebase Storage - Fatal编程技术网

Java OnSuccess方法内的进度对话框,Firebase Firestore?

Java OnSuccess方法内的进度对话框,Firebase Firestore?,java,android,android-studio,google-cloud-firestore,firebase-storage,Java,Android,Android Studio,Google Cloud Firestore,Firebase Storage,我正在将ArrayList上载到firebase存储,然后检索下载URL,然后将自定义数据对象存储到firebase firestore中。我不知道什么时候停止进度对话框 public void uploadNotesToSTORAGE(final ArrayList<NoteItem> nItems, final Activity activity) { final ProgressDialog dialog = new ProgressDialog(activity);

我正在将ArrayList上载到firebase存储,然后检索下载URL,然后将自定义数据对象存储到firebase firestore中。我不知道什么时候停止进度对话框

public void uploadNotesToSTORAGE(final ArrayList<NoteItem> nItems, final Activity activity) {
    final ProgressDialog dialog = new ProgressDialog(activity);
    dialog.setMessage("Uploading picture...");
    dialog.show();

    for (int i = 0; i < nItems.size(); i++) {
        final String id = Calendar.getInstance().getTimeInMillis() + "";
        StorageReference reference = mStorageRef.child("notes/" + id);
        String filePath = nItems.get(i).getFilePath();
        final int finalI = i;
        final int finalI1 = i;
        reference.putFile(Uri.fromFile(new File(filePath))).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                StorageReference reference = mStorageRef.child("notes/" + id);
                reference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                    @Override
                    public void onSuccess(Uri dUri) {
                        nItems.get(finalI).setId(id);
                        nItems.get(finalI).setDownloadLink(dUri + "");
                        db.collection("notes").document().set(nItems.get(finalI))
                                .addOnSuccessListener(new OnSuccessListener<Void>() {
                                    @Override
                                    public void onSuccess(Void aVoid) {

                                        Toast.makeText(activity, "Successfully uploaded : " + nItems.get(finalI1).getFileName(), Toast.LENGTH_SHORT).show();
                                    }
                                });
                    }
                });
            }
        }).addOnFailureListener(onFailureListener);
        dialog.dismiss();
        activity.finish();
        activity.startActivity(new Intent(activity, MainActivity.class));
    }
}
public void uploadNotesToSTORAGE(最终数组列表nItems,最终活动){
最终进度对话框=新建进度对话框(活动);
设置消息(“上传图片…”);
dialog.show();
对于(int i=0;i
reference.putFile(file)
异步上载文件,因此不要在
for
循环中上载所有文件

与此相反,创建一个上载文件的函数,当在
onSuccess
中成功上载文件时,从列表中删除上载的文件对象,并发送下一个文件对象进行上载

当文件列表中没有剩余文件时,关闭对话框

就像排队一样

private ProgressDialog dialog;
private ArrayList<NoteItem> nItems

public void uploadNotesToSTORAGE(final ArrayList<NoteItem> items, Activity activity) {
    nItems = items

    dialog = new ProgressDialog(activity);
    dialog.setMessage("Uploading picture...");
    dialog.show();


    if(nItems != null && !nItems.isEmpty()){
      uploadSingleNote(nItems.get(0));        //get first item
     }
}

private void uploadSingleNote(NoteItem item){
    final String id = Calendar.getInstance().getTimeInMillis() + "";
    StorageReference reference = mStorageRef.child("notes/" + id);
    String filePath = item.getFilePath();

    reference.putFile(Uri.fromFile(new File(filePath))).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
        @Override
        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
            StorageReference reference = mStorageRef.child("notes/" + id);
            reference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                @Override
                public void onSuccess(Uri dUri) {
                    item.setId(id);
                    item.setDownloadLink(dUri + "");
                    db.collection("notes").document().set(nItems.get(finalI))
                    .addOnSuccessListener(new OnSuccessListener<Void>() {
                        @Override
                        public void onSuccess(Void aVoid) {
                            Toast.makeText(activity, "Successfully uploaded : " + item.getFileName(), Toast.LENGTH_SHORT).show();
                            nItems.remove(0);
                            if(nItems != null && !nItems.isEmpty()){
                               uploadSingleNote(nItems.get(0));        //get first item
                             }else{
                              dialog.dismiss();
                                activity.finish();
                              activity.startActivity(new Intent(activity, MainActivity.class));
                             }
                          }
                     });
                }
            });
        }
    }).addOnFailureListener(onFailureListener);
}
私有进程对话框;
私有数组列表nItems
public void uploadNotesToSTORAGE(最终阵列列表项、活动){
nItems=项目
dialog=新建进度对话框(活动);
设置消息(“上传图片…”);
dialog.show();
if(nItems!=null&&!nItems.isEmpty()){
uploadSingleNote(nItems.get(0));//获取第一项
}
}
私有无效上载SingleNote(NoteItem){
最后一个字符串id=Calendar.getInstance().getTimeInMillis()+“”;
StorageReference=mStorageRef.child(“notes/”+id);
字符串filePath=item.getFilePath();
reference.putFile(Uri.fromFile(新文件(文件路径)).addOnSuccessListener(新OnSuccessListener()){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
StorageReference=mStorageRef.child(“notes/”+id);
reference.getDownloadUrl().addOnSuccessListener(新OnSuccessListener()){
@凌驾
成功时的公共无效(Uri dUri){
项目.设置id(id);
item.setDownloadLink(dUri+“”);
db.collection(“notes”).document().set(nItems.get(finalI))
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公开作废(作废避免){
Toast.makeText(活动,“已成功上载:“+item.getFileName(),Toast.LENGTH_SHORT).show();
nItems.remove(0);
if(nItems!=null&&!nItems.isEmpty()){
uploadSingleNote(nItems.get(0));//获取第一项
}否则{
dialog.dismise();
activity.finish();
activity.startActivity(新意图(activity,MainActivity.class));
}
}
});
}
});
}
}).addOnFailureListener(onFailureListener);
}
reference.putFile(file)
异步上载文件,因此不要在
for
循环中上载所有文件

与此相反,创建一个上载文件的函数,当在
onSuccess
中成功上载文件时,从列表中删除上载的文件对象,并发送下一个文件对象进行上载

当文件列表中没有剩余文件时,关闭对话框

就像排队一样

private ProgressDialog dialog;
private ArrayList<NoteItem> nItems

public void uploadNotesToSTORAGE(final ArrayList<NoteItem> items, Activity activity) {
    nItems = items

    dialog = new ProgressDialog(activity);
    dialog.setMessage("Uploading picture...");
    dialog.show();


    if(nItems != null && !nItems.isEmpty()){
      uploadSingleNote(nItems.get(0));        //get first item
     }
}

private void uploadSingleNote(NoteItem item){
    final String id = Calendar.getInstance().getTimeInMillis() + "";
    StorageReference reference = mStorageRef.child("notes/" + id);
    String filePath = item.getFilePath();

    reference.putFile(Uri.fromFile(new File(filePath))).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
        @Override
        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
            StorageReference reference = mStorageRef.child("notes/" + id);
            reference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                @Override
                public void onSuccess(Uri dUri) {
                    item.setId(id);
                    item.setDownloadLink(dUri + "");
                    db.collection("notes").document().set(nItems.get(finalI))
                    .addOnSuccessListener(new OnSuccessListener<Void>() {
                        @Override
                        public void onSuccess(Void aVoid) {
                            Toast.makeText(activity, "Successfully uploaded : " + item.getFileName(), Toast.LENGTH_SHORT).show();
                            nItems.remove(0);
                            if(nItems != null && !nItems.isEmpty()){
                               uploadSingleNote(nItems.get(0));        //get first item
                             }else{
                              dialog.dismiss();
                                activity.finish();
                              activity.startActivity(new Intent(activity, MainActivity.class));
                             }
                          }
                     });
                }
            });
        }
    }).addOnFailureListener(onFailureListener);
}
私有进程对话框;
私有数组列表nItems
public void uploadNotesToSTORAGE(最终阵列列表项、活动){
nItems=项目
dialog=新建进度对话框(活动);
设置消息(“上传图片…”);
dialog.show();
if(nItems!=null&&!nItems.isEmpty()){
uploadSingleNote(nItems.get(0));//获取第一项
}
}
私有无效上载SingleNote(NoteItem){
最后一个字符串id=Calendar.getInstance().getTimeInMillis()+“”;
StorageReference=mStorageRef.child(“notes/”+id);
字符串filePath=item.getFilePath();
reference.putFile(Uri.fromFile(新文件(文件路径)).addOnSuccessListener(新OnSuccessListener()){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
存储参考