Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.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
Android 如果没有互联网连接,如何停止将图像上传到云存储_Android_Google Cloud Firestore_Firebase Storage - Fatal编程技术网

Android 如果没有互联网连接,如何停止将图像上传到云存储

Android 如果没有互联网连接,如何停止将图像上传到云存储,android,google-cloud-firestore,firebase-storage,Android,Google Cloud Firestore,Firebase Storage,我正在使用Firestore和Firebase存储上传图像。但当上传过程开始时,如果没有互联网连接,它仍然会显示进度条。我想停止加载,它应该显示消息 提前谢谢 当internet连接失败时,尝试此方法onFailure()方法自动调用。然后在onFailure()中隐藏加载和显示消息 //此方法将上载文件 public void uploadFile(字符串mFilePath、字符串imageName、CallBackUploadImage回调){ //如果有要上传的文件 if(mFilePat

我正在使用Firestore和Firebase存储上传图像。但当上传过程开始时,如果没有互联网连接,它仍然会显示进度条。我想停止加载,它应该显示消息


提前谢谢

当internet连接失败时,尝试此方法onFailure()方法自动调用。然后在onFailure()中隐藏加载和显示消息

//此方法将上载文件
public void uploadFile(字符串mFilePath、字符串imageName、CallBackUploadImage回调){
//如果有要上传的文件
if(mFilePath!=null){
uriimagepath=Uri.fromFile(新文件(mFilePath));
storagereferef=mStorageRef.child(“images/”+imageName+“.jpg”);
riversisref.putFile(imagePath)
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
@抑制警告(“VisibleForTests”)
Uri downloadUrl=taskSnapshot.getDownloadUrl();
callback.onSuccess();
}
})
.addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常){
callback.onServerError();
}
});
}
}

当internet连接失败时,请尝试此方法。onFailure()方法将自动调用。然后,您将在onFailure()中隐藏加载和显示消息

//此方法将上载文件
public void uploadFile(字符串mFilePath、字符串imageName、CallBackUploadImage回调){
//如果有要上传的文件
if(mFilePath!=null){
uriimagepath=Uri.fromFile(新文件(mFilePath));
storagereferef=mStorageRef.child(“images/”+imageName+“.jpg”);
riversisref.putFile(imagePath)
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
@抑制警告(“VisibleForTests”)
Uri downloadUrl=taskSnapshot.getDownloadUrl();
callback.onSuccess();
}
})
.addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常){
callback.onServerError();
}
});
}
}

用于云存储的Firebase SDK将自动重试文件上载,并在连接丢失和恢复时恢复。当连接丢失时,上传不会立即失败

如果您想在连接丢失时取消上载,则必须自行检测该情况并手动取消上载


Firebase SDK for Cloud Storage将自动重试文件上载,并在连接丢失和恢复时恢复。当连接丢失时,上传不会立即失败

如果您想在连接丢失时取消上载,则必须自行检测该情况并手动取消上载

谢谢大家的帮助。 但我发现(从我的问题中)Firebase不负责网络连接。 我的问题解决了。它还会重新启动活动。

谢谢大家的帮助。 但我发现(从我的问题中)Firebase不负责网络连接。
我的问题解决了。它还会重新启动活动。

Firestore和Firebase启用脱机存储。如果您想要实现此行为,您应该做的是检查,如果它可用,则处理事务。感谢您提供的解决方案。但是有代码来检查连接,并且工作正常。我想要的是,如果没有互联网,进度条应该停止加载,消息应该显示出来。我想我描述了你应该怎么做。如果您有一些检查连接性的代码,并且工作正常,只需在事务之前使用它即可。。根本不会有任何进度条,因为事务甚至不会启动。Firestore和Firebase启用脱机存储。如果您想要实现此行为,您应该做的是检查,如果它可用,则处理事务。感谢您提供的解决方案。但是有代码来检查连接,并且工作正常。我想要的是,如果没有互联网,进度条应该停止加载,消息应该显示出来。我想我描述了你应该怎么做。如果您有一些检查连接性的代码,并且工作正常,只需在事务之前使用它即可。。根本不会有任何进度条,因为事务甚至不会启动。在这里,我使用回调来处理成功或错误消息。您可以直接设置错误消息,并在onFailure方法中隐藏加载程序。private FirebaseStorage mStorage=FirebaseStorage.getInstance();private StorageReference mStorageRef=mStorage.getReferenceFromUrl(“您的url”);好的,Firebase不认为缺少网络连接是失败的。在这里,我使用了一个回调来处理成功或错误消息。您可以直接设置错误消息并在onFailure方法中隐藏加载程序。private FirebaseStorage mStorage=FirebaseStorage.getInstance();private StorageReference mStorageRef=mStorage.getReferenceFromUrl(“您的url”);顺便说一句,Firebase不认为缺乏网络连接是故障。
 //this method will upload the file
 public void uploadFile(String mFilePath, String imageName, CallBackUploadImage callback) {

    //if there is a file to upload
    if (mFilePath != null) {
        Uri imagePath = Uri.fromFile(new File(mFilePath));
        StorageReference riversRef = mStorageRef.child("images/" + imageName + ".jpg");
        riversRef.putFile(imagePath)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        @SuppressWarnings("VisibleForTests")
                        Uri downloadUrl = taskSnapshot.getDownloadUrl();
                        callback.onSuccess();
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception exception) {
                        callback.onServerError();
                    }
                });
    }

}