Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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 文件已上载但未显示在Firebase实时数据库-Android Studio中_Java_Android_Firebase Realtime Database_Google Cloud Storage_Firebase Storage - Fatal编程技术网

Java 文件已上载但未显示在Firebase实时数据库-Android Studio中

Java 文件已上载但未显示在Firebase实时数据库-Android Studio中,java,android,firebase-realtime-database,google-cloud-storage,firebase-storage,Java,Android,Firebase Realtime Database,Google Cloud Storage,Firebase Storage,在我的android应用程序中,当我上传PDF文件时,它会上传到firebase存储中,但文件名和url不会显示在实时数据库中 private void uploadPDFFile(Uri data) { final ProgressDialog progressDialog = new ProgressDialog(this); progressDialog.setTitle("Uploading..."); progressDialog.show();

在我的android应用程序中,当我上传PDF文件时,它会上传到firebase存储中,但文件名和url不会显示在实时数据库中

 private void uploadPDFFile(Uri data) {

    final ProgressDialog progressDialog =  new ProgressDialog(this);
    progressDialog.setTitle("Uploading...");
    progressDialog.show();

    StorageReference reference = storageReference.child("uploads/"+System.currentTimeMillis()+".pdf");
    reference.putFile(data)
            .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {



                    Task<Uri> uri = taskSnapshot.getStorage().getDownloadUrl();
                    while(!uri.isComplete());
                    Uri url = uri.getResult();

                    uploadPDF uploadPDF = new uploadPDF(editPDFName.getText().toString(),url.toString());
                    databaseReference.child(databaseReference.push().getKey()).setValue(uploadPDF);



                    Toast.makeText(MainActivity.this, "File uploaded", Toast.LENGTH_SHORT).show();
                    progressDialog.dismiss();

                }
            }).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
        @Override
        public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
            double progress = (100.0*taskSnapshot.getBytesTransferred())/taskSnapshot.getTotalByteCount();
            progressDialog.setMessage("Uploaded: " + (int) progress + "%");

        }
    });
}
private void uploadPdfile(Uri数据){
final ProgressDialog ProgressDialog=新建ProgressDialog(此);
progressDialog.setTitle(“上载…”);
progressDialog.show();
StorageReference=StorageReference.child(“uploads/”+System.currentTimeMillis()+”.pdf”);
reference.putFile(数据)
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
任务uri=taskSnapshot.getStorage().getDownloadUrl();
而(!uri.isComplete());
Uri url=Uri.getResult();
uploadPDF uploadPDF=新的uploadPDF(editPDFName.getText().toString(),url.toString());
databaseReference.child(databaseReference.push().getKey()).setValue(uploadPDF);
Toast.makeText(MainActivity.this,“文件上载”,Toast.LENGTH_SHORT.show();
progressDialog.disclose();
}
}).addOnProgressListener(新的OnProgressListener(){
@凌驾
public void onProgress(UploadTask.TaskSnapshot TaskSnapshot){
双进度=(100.0*taskSnapshot.GetByTestTransferred())/taskSnapshot.getTotalByteCount();
setMessage(“上传:”+(int)进度+“%”;
}
});
}
请不要这样做:

while(!uri.isComplete());
即使它能工作,它也是一个紧密的循环,消耗的资源超过了需要

而是遵循Firebase文档中所示的模式:

reference.putFile(数据)
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
Task uriTask=taskSnapshot.getStorage().getDownloadUrl();
uriTask.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时的公共无效(Uri){
Uri url=uriTask.getResult();
uploadPDF uploadPDF=新的uploadPDF(editPDFName.getText().toString(),url.toString());
databaseReference.child(databaseReference.push().getKey()).setValue(uploadPDF);
Toast.makeText(MainActivity.this,“文件上载”,Toast.LENGTH_SHORT.show();
progressDialog.disclose();
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常){
//处理任何错误
}
});
}
}).addOnProgressListener(
请不要这样做:

while(!uri.isComplete());
即使它能工作,它也是一个紧密的循环,消耗的资源超过了需要

而是遵循Firebase文档中所示的模式:

reference.putFile(数据)
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
Task uriTask=taskSnapshot.getStorage().getDownloadUrl();
uriTask.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时的公共无效(Uri){
Uri url=uriTask.getResult();
uploadPDF uploadPDF=新的uploadPDF(editPDFName.getText().toString(),url.toString());
databaseReference.child(databaseReference.push().getKey()).setValue(uploadPDF);
Toast.makeText(MainActivity.this,“文件上载”,Toast.LENGTH_SHORT.show();
progressDialog.disclose();
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常){
//处理任何错误
}
});
}
}).addOnProgressListener(