Я реализовал загрузку файлов с клиента в хранилище firebase.Он работает без проблем везде, кроме Mobile Safari на iOS .
Код довольно прост и практически идентичен руководству: https://firebase.google.com/docs/storage/web/upload-files
const storageRef = firebase.storage().ref();
const fileRef = storageRef.child(`${uid}/${fileId}`);
const metadata = {
contentType: file.type,
customMetadata: { uploadedBy: email, uploadedDate: new Date().toDateString() }
};
return fileRef.put(file, metadata)
Мне удалось проверить сеть и консоль на телефоне iOS, и я получаю сообщение об этой ошибке:
Неправильный запрос.Заголовок X-Goog-Upload-Command отсутствует.
К сетевому запросу добавлен следующий параметр запроса: upload_protocol=resumable
Однако, проверяя тот же запрос в Windows Chrome, он устанавливается на upload_protocol=multipart
Я предполагаю, что заголовок X-Goog-Upload-Command требуется, когда upload_protocol имеет значение resumable .
Но так как это firebase выполняет запрос и устанавливает upload_protocol, я не уверен, как я могу это добавить.
В любом случае я бы подумал, что это будет просто работать.Я не видел никаких дополнительных настроек в документации для iOS: https://firebase.google.com/docs/storage/ios/upload-files