Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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 正在使用firebase上载图像。无法获取上载的进度_Android_Firebase_Firebase Storage - Fatal编程技术网

Android 正在使用firebase上载图像。无法获取上载的进度

Android 正在使用firebase上载图像。无法获取上载的进度,android,firebase,firebase-storage,Android,Firebase,Firebase Storage,I类型代码作为firebase存储结果的文档仅0.0 uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() { @Override public void onProgress(UploadTask.TaskSnapshot taskSnapshot) { double progress = 100.0* (taskSnapshot.getB

I类型代码作为firebase存储结果的文档仅0.0

uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
        double progress = 100.0* (taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount());

        dialog.setMessage("uploading "+progress+" %");
        dialog.show();
    }
});
uploadTask.addOnProgressListener(新的OnProgressListener(){
@凌驾
public void onProgress(UploadTask.TaskSnapshot TaskSnapshot){
double progress=100.0*(taskSnapshot.GetByTestTransferred()/taskSnapshot.getTotalByteCount());
对话框.setMessage(“上传”+进度+“%”);
dialog.show();
}
});

这是您将图像上载到Firebase存储的方式祝您好运;)

private void uploadFromUri(Uri fileUri){
d(标记为uploadFromUri:src:+fileUri.toString());
//[开始获取儿童参考]
//获取存储文件在photos/.jpg的引用
最终StorageReference photoRef=storageRef.child(“图像”)
.child(fileUri.getLastPathSegment());
//[END get_child_ref]
//将文件上载到Firebase存储
//[开始时不包括]
showProgressDialog();
//[完]
Log.d(标记“uploadFromUri:dst:+photoRef.getPath());
photoRef.putFile(fileUri)
.addOnSuccessListener(此,新的OnSuccessListener(){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
//上传成功
d(标记“uploadFromUri:onSuccess”);
//获取公共下载URL
mDownloadUrl=taskSnapshot.getMetadata().getDownloadUrl();
Log.d(“下载Url”,mDownloadUrl.toString());
//[开始时不包括]
hideProgressDialog();
//updateUI(mAuth.getCurrentUser());
//[完]
}
})
.addOnFailureListener(此,新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常){
//上载失败
w(标记“uploadFromUri:onFailure”,异常);
mDownloadUrl=null;
//[开始时不包括]
hideProgressDialog();
Toast.makeText(NewProduct.this,“错误:上载失败”,
吐司。长度(短)。show();
//updateUI(mAuth.getCurrentUser());
//[完]
}
});
}
//[结束从\u uri上传\u]

代码示例中有错误。看,别谢我。我是在文档中编写坏代码示例的人。;-)感谢@qbix(通过投票更新他的答案)。您也可以从我的博客中尝试:taskSnapshot.getTotalByteCount()的I get-1。这可能是什么问题。我知道数据是以256k的数据块上传的。但是为什么要传输的所有字节的总和都是负值呢?
 private void uploadFromUri(Uri fileUri) {
        Log.d(TAG, "uploadFromUri:src:" + fileUri.toString());

        // [START get_child_ref]
        // Get a reference to store file at photos/<FILENAME>.jpg
        final  StorageReference photoRef = storageRef.child("images")
                .child(fileUri.getLastPathSegment());
        // [END get_child_ref]

        // Upload file to Firebase Storage
        // [START_EXCLUDE]
        showProgressDialog();
        // [END_EXCLUDE]
        Log.d(TAG, "uploadFromUri:dst:" + photoRef.getPath());
        photoRef.putFile(fileUri)
                .addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        // Upload succeeded
                        Log.d(TAG, "uploadFromUri:onSuccess");

                        // Get the public download URL
                        mDownloadUrl = taskSnapshot.getMetadata().getDownloadUrl();
                        Log.d( "The Download Url", mDownloadUrl.toString());


                        // [START_EXCLUDE]
                        hideProgressDialog();
                     //   updateUI(mAuth.getCurrentUser());
                        // [END_EXCLUDE]
                    }
                })
                .addOnFailureListener(this, new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception exception) {
                        // Upload failed
                        Log.w(TAG, "uploadFromUri:onFailure", exception);

                        mDownloadUrl = null;

                        // [START_EXCLUDE]
                        hideProgressDialog();
                        Toast.makeText(NewProduct.this, "Error: upload failed",
                                Toast.LENGTH_SHORT).show();
                       // updateUI(mAuth.getCurrentUser());
                        // [END_EXCLUDE]
                    }
                });
    }
    // [END upload_from_uri]