Я перепробовал все решения, опубликованные в StackOverflow, но моя проблема там не обсуждалась, поэтому я поднимаю этот вопрос. В моем случае изображение загружается в хранилище базы данных Firebase, но новая запись не вставляется в FireStore, и возникает эта ошибка. Мой код: -
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
progressDialog.setMessage("Adding candidate........");
progressDialog.show();
final String fetch_name = name.getText().toString();
final String fetch_age = age.getText().toString();
final String fetch_number = number.getText().toString();
final String fetch_area = area.getText().toString();
try{image_path = storageReference.child(user_id+"."+getFileExtension(imageUri)).putFile(imageUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
storageReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
Log.i("Infor",uri.toString());
String img = uri.toString();
if(img!=null){
storeData(img,fetch_name,fetch_age,fetch_number,fetch_area);
Toast.makeText(add_candidate.this,"Added successfully",Toast.LENGTH_SHORT).show();
progressDialog.dismiss();
}
else
Toast.makeText(add_candidate.this,"Error ho gya bhaiya",Toast.LENGTH_SHORT).show();
progressDialog.dismiss();
}
});
}
},1000);
}
});}
catch(Exception e){Log.i("Infor",e.getMessage());
e.printStackTrace();}
}
});
Функция сохранения данных выглядит следующим образом: -
private void storeData(String downloadUri, String fetch_name, String fetch_age, String fetch_number, String fetch_area) {
Map<String,String> candidateData = new HashMap<>();
candidateData.put("name",fetch_name);
candidateData.put("age",fetch_age);
candidateData.put("number",fetch_number);
candidateData.put("area",fetch_area);
candidateData.put("Uri",downloadUri);
firebaseFirestore.collection("Candidates").document(user_id).set(candidateData).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()){
progressDialog.dismiss();
Toast.makeText(add_candidate.this,"Completed",Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(add_candidate.this,task.getException().getMessage(),Toast.LENGTH_SHORT).show();
}
}
});
}
Ошибка: -
E / StorageException: возникла исключительная ситуация StorageException. Объект не существует на месте. - Android Студийный код: -13010 HttpResu1t: 404