Я получаю это исключение: объект не существует в местоположении

# #android #firebase #firebase-storage

Вопрос:

  E/StorageException: StorageException has occurred.
    Object does not exist at location.
     Code: -13010 HttpResult: 404
2021-09-13 00:52:49.705 20328-20869/com.dishanamdev.advibe E/StorageException: {  "error": {    "code": 404,    "message": "Not Found.  Could not get object",    "status": "GET_OBJECT"  }}
    java.io.IOException: {  "error": {    "code": 404,    "message": "Not Found.  Could not get object",    "status": "GET_OBJECT"  }}
 

и мои правила безопасности в хранилище firebase таковы

 rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}
 

Мой java-код. Здесь я не в состоянии понять, что писать вместо b того, чтобы и что писать вместо bucket написанного firebase storage rules .
Не могли бы вы, пожалуйста, сказать мне, что писать в этих двух вышеупомянутых местах по сравнению с моим java-кодом?
Я пытался писать user вместо b и currentID вместо bucket , но это не сработало.
Таким образом :

 rules_version = '2';
    service firebase.storage {
      match /user/{currentID}/o {
        match /{allPaths=**} {
          allow read, write: if request.auth != null;
        }
      }
    }



 public void onStart() {
        super.onStart();
        FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
        String currentId = user.getUid();
        DocumentReference reference;
        FirebaseFirestore firestore = FirebaseFirestore.getInstance();

        reference = firestore.collection("user").document(currentId);

        reference.get()
                .addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                        if(task.getResult().exists()){

                            String nameResult = task.getResult().getString("name");
                            String bioResult = task.getResult().getString("bio");

                            nameET.setText(nameResult);
                            bioET.setText(bioResult);
                        }else{
                            Intent intent = new Intent(getActivity(),CreateProfile.class);
                            startActivity(intent);
                        }
                    }
                });}
 

Пожалуйста, помогите мне.

Комментарии:

1. Это не проблема с вашими правилами безопасности. Файл, который вы пытаетесь получить, не существует. Пожалуйста, убедитесь, что путь указывает на допустимый объект в вашем хранилище

2. Не могли бы вы предоставить мне какую-либо ссылку на документацию, по которой я могу узнать, как написать правильный путь?

3. ошибка четко указывает : код»: 404″, «сообщение»: «Не найдено. Не удалось получить объект. пусть ваш путь будет неправильным, как упоминал выше Фрэнк.

4. Пожалуйста, покажите свой код, который выдает ошибку, и как вы пытаетесь получить объект из хранилища

5. Я прямо сейчас это сделал, сэр. Пожалуйста, проверьте один раз и, пожалуйста, помогите.

Ответ №1:

Прямо сейчас я решил эту проблему. Эта ошибка появляется, когда мы не загружаем объект, содержащий все данные (включая фотографии, тексты и т.д.) в firebase.Поэтому, если у кого-то еще возникает та же проблема then must check your code again в классе файла java, в котором вы создали ссылку на хранилище firebase, ссылку на базу данных, ссылку на документ