Flutter Firebase работает на симуляторе, но обзор Apple: произошла неизвестная ошибка, проверьте ответ сервера

Я схожу с ума здесь ... Я протестировал свое приложение Flutter, использующее Firebase, и все работает отлично. На каждом симуляторе, на реальном устройстве, в TestFlight. Все работает.

НО обозреватель Apple продолжает получать сообщение об ошибке при попытке загрузить что-либо в Firebase, но error говорит только:

an unknown error occurred please check the server response

Здесь происходит error:

 Future<Memory?> addMemory({
    required BuildContext context,
    required String title,
    required List<String> imageFilePaths,
    required DateTime dateTime,
    required String? story,
    int? sortIndexIfEditing,
  }) async {
    try {
      Year currentYear =
          Provider.of<DataProvider>(context, listen: false).getCurrentYear();

      Month currentMonth =
          Provider.of<DataProvider>(context, listen: false).getCurrentMonth();

      int currentMonthIndex = currentMonth.month;

      String uid = AuthService.currentUser!.uid;

      List<String> imageLocations = [];

      for (String path in imageFilePaths) {
        String uidForLocation = Uuid().v1();

        String imageLocation =
            '$uid/${currentYear.id}/${currentMonth.id}/$uidForLocation';

        await FirebaseStorage.instance.ref(imageLocation).putFile(
              File(path),
            );
        imageLocations.add(imageLocation);
      }
      Memory? memoryToReturn = await _addMemoryToDatabse(
        context: context,
        imageLocations: imageLocations,
        currentYear: currentYear,
        currentMonthIndex: currentMonthIndex,
        title: title,
        dateTime: dateTime,
        story: story,
        sortIndexIfEditing: sortIndexIfEditing,
      );

      return memoryToReturn;
    } on FirebaseException catch (e) {
      print('addMemory failed: ' + e.message.toString());
      AlertService.showSnackBar(
        title: 'Ups, hier ist etwas schiefgelaufen...',
        description: e.message.toString(),
        isSuccess: false,
      );
      return null;
    }
  }

Это не про Security Rules, уже проверил, что:

rules_version = '2'; 
service cloud.firestore { 
    match /databases/{database}/documents {
        match /{document=**} {
            allow read, write: if request.auth != null;
        }  
    } 
 }

Что еще может означать это error? Я хотел бы предоставить вам больше информации, но это все, что у меня есть.

Сообщите мне свой адрес электронной почты, если вам нужен доступ к TestFlight, чтобы вы могли протестировать его самостоятельно.

попробуйте добавить правила в хранилище вот так, rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { разрешить чтение, запись: если правда; } } }

Monasha 10.04.2023 12:05

@Монаша, это открыло бы мою Storage для всех, и тебе определенно не следует этого делать.

Chris 11.04.2023 10:56

На самом деле, я имел в виду изменение прав доступа к «хранилищу» в соответствии с вашими требованиями. Это был просто пример. Иметь множественное совпадение /{document=**} { разрешить чтение, запись: если request.auth != null; } условия, если у вас есть несколько условных путей.

Monasha 11.04.2023 11:19

Эта ошибка связана с правилами хранения, которые вы установили в Firebase. Однако вы должны быть в состоянии воспроизвести это, поскольку, насколько я знаю, вы предоставляете учетную запись Apple Reviewer, поэтому вы можете перейти к ней и отладить ее. Кроме того, поскольку вы используете Firebase, включите отчеты о сбоях, и вы будете лучше видеть, что происходит. Честно говоря, я поощряю это во всех запросах, чтобы иметь возможность понять, что происходит с вашим приложением, когда что-то пойдет не так.

Adrian0012 12.04.2023 13:22

Они проверили это с помощью учетной записи, которую я им дал. И все работает так, как ожидалось. Ничего не регистрируется. Это было странно. Но я повторно отправил его сегодня (ничего не изменил в своем приложении), и он был принят. С

Chris 12.04.2023 13:58

Если это происходит только с Apple Reviewer и только при доступе к файлам в облачном хранилище через Firebase, вероятно, проблема возникает и здесь: stackoverflow.com/questions/75573747/…

Frank van Puffelen 12.04.2023 16:25

@FrankvanPuffelen звучит точно так же, как мой случай! Я отмечу это как дубликат.

Chris 12.04.2023 16:28
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
7
105
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

как предположил Фрэнк, это известная проблема с Firebase Storage.

Это еще один SO-вопрос о том же случае:

Группа проверки App Store сообщает об ошибке «Отказано в подключении», препятствующей загрузке изображения при использовании хранилища Firebase

Кстати, мое приложение только что приняли. Я изменил свой Security Rules на allow read, write: if true, чего делать НЕ ДОЛЖНО. После того, как оно было принято, я изменил его на безопасное правило.

Я не знаю, была ли на самом деле проблема auth, потому что мой Firebase-Log не показал отказов.

Другие вопросы по теме