Java E/StorageException:发生了StorageException。对象在位置处不存在。在firebase android工作室 void uploadCompImage(){ if(compliantImageUri!=null){ StorageReference fileReference=mStorageRef.child(类型).child(victimNameid.getText().toString()+“+getFileExtension(compliantImageUri)); fileReference.putFile(compliantImageUri) .addOnSuccessListener(新的OnSuccessListener(){ @凌驾 成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){ Toast.makeText(newcomment.this,“上载成功”,Toast.LENGTH_SHORT.show(); } }) .addOnFailureListener(新的OnFailureListener(){ @凌驾 public void onFailure(@NonNull异常e){ Toast.makeText(newcomment.this,“图像上传失败”,Toast.LENGTH_SHORT.show(); } }); fileReference.getDownloadUrl().addOnSuccessListener(新OnSuccessListener()){ @凌驾 成功时的公共无效(Uri){ 字符串imgUrl; imgUrl=uri.toString(); 上传compdata(imgUrl); } }).addOnFailureListener(新的OnFailureListener(){ @凌驾 public void onFailure(@NonNull异常e){ imgSearch(); } }); }否则{ Toast.makeText(newcomment.this,“未选择图像”,Toast.LENGTH_SHORT.show(); } } 私有无效imgSearch(){ StorageReference imgRef=mStorageRef.child(type).child(victimNameid.getText().toString()+“+getFileExtension(compliantImageUri)); imgRef.getDownloadUrl().addOnSuccessListener(新OnSuccessListener()){ @凌驾 成功时的公共无效(Uri){ imageUrl=uri.toString(); 上传compdata(imageUrl); } }); }
Java E/StorageException:发生了StorageException。对象在位置处不存在。在firebase android工作室 void uploadCompImage(){ if(compliantImageUri!=null){ StorageReference fileReference=mStorageRef.child(类型).child(victimNameid.getText().toString()+“+getFileExtension(compliantImageUri)); fileReference.putFile(compliantImageUri) .addOnSuccessListener(新的OnSuccessListener(){ @凌驾 成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){ Toast.makeText(newcomment.this,“上载成功”,Toast.LENGTH_SHORT.show(); } }) .addOnFailureListener(新的OnFailureListener(){ @凌驾 public void onFailure(@NonNull异常e){ Toast.makeText(newcomment.this,“图像上传失败”,Toast.LENGTH_SHORT.show(); } }); fileReference.getDownloadUrl().addOnSuccessListener(新OnSuccessListener()){ @凌驾 成功时的公共无效(Uri){ 字符串imgUrl; imgUrl=uri.toString(); 上传compdata(imgUrl); } }).addOnFailureListener(新的OnFailureListener(){ @凌驾 public void onFailure(@NonNull异常e){ imgSearch(); } }); }否则{ Toast.makeText(newcomment.this,“未选择图像”,Toast.LENGTH_SHORT.show(); } } 私有无效imgSearch(){ StorageReference imgRef=mStorageRef.child(type).child(victimNameid.getText().toString()+“+getFileExtension(compliantImageUri)); imgRef.getDownloadUrl().addOnSuccessListener(新OnSuccessListener()){ @凌驾 成功时的公共无效(Uri){ imageUrl=uri.toString(); 上传compdata(imageUrl); } }); },java,android,firebase,Java,Android,Firebase,fileReference.putFile(compliantImageUri)是异步的。映像上载到该存储引用将需要一些时间,但fileReference.getDownloadUrl()将在该行之后立即执行,因此您将立即尝试访问尚未上载的图像的下载url。这就是您收到错误消息的原因。当 void uploadCompImage(){ if (compliantImageUri != null) { StorageReference fileReference = mSt
fileReference.putFile(compliantImageUri)
是异步的。映像上载到该存储引用将需要一些时间,但fileReference.getDownloadUrl()
将在该行之后立即执行,因此您将立即尝试访问尚未上载的图像的下载url。这就是您收到错误消息的原因。当
void uploadCompImage(){
if (compliantImageUri != null) {
StorageReference fileReference = mStorageRef.child(type).child(victimNameid.getText().toString()+"."+getFileExtension(compliantImageUri));
fileReference.putFile(compliantImageUri)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Toast.makeText(NewCompliant.this,"UPLOAD SUCCESSFUL",Toast.LENGTH_SHORT).show();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(NewCompliant.this,"IMAGE UPLOAD FAILED",Toast.LENGTH_SHORT).show();
}
});
fileReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
String imgUrl;
imgUrl = uri.toString();
uploadCompData(imgUrl);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
imgSearch();
}
});
} else {
Toast.makeText(NewCompliant.this,"IMAGE IS NOT SELECTED",Toast.LENGTH_SHORT).show();
}
}
private void imgSearch(){
StorageReference imgRef = mStorageRef.child(type).child(victimNameid.getText().toString()+"."+getFileExtension(compliantImageUri));
imgRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
imageUrl = uri.toString();
uploadCompData(imageUrl);
}
});
}
执行,因此在该方法中或返回该方法后的任何时间访问下载url
祝你有一个愉快的一天
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Toast.makeText(NewCompliant.this,"UPLOAD SUCCESSFUL",Toast.LENGTH_SHORT).show();
}