JavaScript: загрузка файлов в хранилище Firebase - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь загрузить файлы в Firebase Storage, используя JavaScript. У меня проблема в том, что каждый раз, когда я выбираю несколько файлов и загружаю их, в консоль выдается следующее сообщение об ошибке:

xhrio_network.ts: 73 GET https://firebasestorage.googleapis.com/v0/b/e-tutor-cf992.appspot.com/o/1588177804022-CW_COMP1108_6236_mw3002e_24112018_164324_1819.pdf 404

Uncaught (в обещании) b {code_: «хранилище / объект не найден», message_: «Firebase Storage: Object '1588177804022-CW_COMP110… mw3002e_24112018_164324_1819.pdf' не существует.", ServerResponse_: "serverResponse_:" {↵ "ошибка": {↵ "код": 404, ↵ "сообщение": "Нет ... не получить объект", ↵ "статус": "GET_OBJECT" ↵} ↵} ", name_:" FirebaseError "}

Мой код выглядит следующим образом:

generateBase64FromFile(fileUploads[i]).then(file => {
  console.log(fileUploads[i]);
  const storageRef = firebase.storage().ref();
  fileRef = storageRef.child(`${new Date().getTime().toString()}-${fileUploads[i].name}`);
  uploadTask = fileRef.putString(file, 'data_url');
  uploadTask.on('state_changed', () => {
  }, error => {
    console.error(error);
    document.querySelector('#processing-msg').remove();
    alert('File Uploading Failed!');
  }, () => {
    uploadTask.snapshot.ref.getDownloadURL().then(async downloadUrl => {
      files.push(downloadUrl);
      filesRef.push(fileRef);
      console.log('filesLength', files.length);
      console.log('fileUploadsLength', fileUploads.length);
      if (files.length === fileUploads.length) {
        try {
          let chatResponse;
          const data = new FormData();
          if (id == null) {
            const to = [groupId];
            data.append('to[]', to[0]);
            data.append('message', message);
            data.append('groupId', groupId);
            for (let i = 0; i < files.length; i++) {
              data.append('files[]', files[i]);
            }
            chatResponse = await fetch(`${baseURL}/message`, {
              method: 'POST',
              headers: {Authorization: `Bearer ${token}`},
              body: data
            });
          } else {
            data.append('to', id);
            data.append('message', message);
            for (let i = 0; i < files.length; i++) {
              data.append('files[]', files[i]);
            }
            chatResponse = await fetch(`${baseURL}/message`, {
              method: 'POST',
              headers: {Authorization: `Bearer ${token}`},
              body: data
            });
          }
          if (chatResponse.status === 201) {
            const chatData = await chatResponse.json();
            if (id == null) {
              document.querySelector('#processing-msg').remove();
            } else {
              document.querySelector('#processing-msg').setAttribute('id', chatData.data.message._id);
            }
          }
        } catch (err) {
          console.error(err);
        }
      }
    });
  });
});

Я ожидаю, что все изображения будут загружены и их URL загрузки будут загружены, но вместо этого он выдает ошибку, которая, кажется, блокирует остальную часть моего кода от работы, хотя, когда я проверил FireBase, я заметил, что файлы были загружены, но я не знаю, почему это выдает ошибку. Пожалуйста, что я делаю не так?

(Необязательно): Вот изображение ошибки консоли на всякий случай: https://imgur.com/kXQIFm2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...