W/StorageUtil(9633): ошибка при получении токена проверки приложения; вместо этого используйте токен-заполнитель

Я пытаюсь создать приложение чата с Flutter и Firebase, у меня проблема с отправкой изображений. Когда я сохраняю изображение, а затем пытаюсь получить его с помощью getDownloadURL(), приложение показывает много ошибок, я не понимаю, почему.

вот код функции, которая должна отправить изображение другому пользователю:

final FirebaseStorage fireStorage = FirebaseStorage.instance;

        sendImage({required File file,required String roomId,required String uid})async {
          String ext = file.path.split('.').last;
          final ref = fireStorage
              .ref()
              .child('image/$roomId/${DateTime.now().millisecondsSinceEpoch}.$ext');

          ref.putFile(file);

          String imageUrl = await ref.getDownloadURL();
           FireData().sendMessage(uid, imageUrl, roomId,type: 'image');

        }
        }

это код функции sendMessage:

Future sendMessage(String uid, String msg, String roomId, {String? type}) async{
   String msgId = Uuid().v1();
   Message message = Message(
       id: msgId,
       fromId: myUid,
       createdAt: DateTime.now().millisecondsSinceEpoch.toString(),
       msg: msg,
       read: '',
       toId: uid,
       type: type ?? 'text'
   );
   await firestore.collection('rooms').doc(roomId).collection('messages').doc(msgId).set(message.toJson());
  }

и вот как я вызываю функцию sendImage:

IconButton(
                                onPressed: ()async{
                              ImagePicker picker = ImagePicker();
                              XFile? image = await picker.pickImage(
                                  source: ImageSource.gallery);
                              if (image!=null){
                                FireStorage().sendImage(
                                   file: File(image.path),
                                   roomId: widget.roomId,
                                   uid: widget.chatUser.id!
                               );
                              }
                            }, icon: const Icon(Iconsax.camera)
                            )

это ошибка, которую я получаю: введите сюда описание изображениявведите сюда описание изображения и, как вы можете видеть здесь, изображение хранится в хранилище: введите сюда описание изображения

я пытался запустить приложение на хроме, но стало только хуже пожалуйста, если кто-нибудь знает, как это решить это сводит меня с ума

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

Doug Stevenson 21.04.2024 19:55

проверьте это stackoverflow.com/questions/70058262/…

user3509208 21.04.2024 19:58
Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
83
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Я сталкивался с этой проблемой много раз, единственный способ решить это await при размещении файла:

   await ref.putFile(file);

это работает, но есть кое-что, на чем нам следует сосредоточиться:

ref.putFile(), этот метод возвращает значение, но не в Future, для чего здесь await, разве это не нужно!.

это другой вопрос!, ответ на который требует раскрытия конкретной реализации метода putFile.

Похожие вопросы, раскрывающие ту же проблему.

Кстати: отметьте метод sendMessage как метод void, он ничего не возвращает, поэтому удалите Future.

void sendMessage(String uid, String msg, String roomId, {String? type}) async{}

Сделайте то же самое для FireStorage().sendImage, если он возвращает Future, отметьте его как void.

Надеюсь, это вам поможет.

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