Ошибка загрузки предварительного просмотра в Firebase Cloud Storage - PullRequest
0 голосов
/ 19 марта 2020

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

Я не дошел до шага, когда добавляю ссылку на изображение к объекту в Cloud Firestore, но я не был уверен, что это просто из-за типа файла (HEI C, но image / jpeg) или если что-то не так с моим кодом:

Обзор хранилища:

enter image description here

Изображение (при нажатии):

Отображение знака вопроса.

enter image description here

Ответ изображения (реагирующий на сборщик изображений):

 {height: 3024, origURL: "assets-library://asset/asset.HEIC?id=CC95F08C-88C3-4012-9D6D-64A413D254B3&ext=HEIC", fileName: null, data: "/9j/4AAQSkZJRgABAQAASABIAAD/4QBMRXhpZgAATU0AKgAAAA…c4z+P04wa+twuG5Yq628/OR1QqSdtLLqrrTe32L79l63P/9k=", width: 4032, …}
height: 3024
origURL: "assets-library://asset/asset.HEIC?id=CC95F08C-88C3-4012-9D6D-64A413D254B3&ext=HEIC"
fileName: null
data: "/9j/4AAQSkZJRgABAQAASABIAAD/4QBMRXhpZgAATU0AKgAAAA"
width: 4032
type: "image/jpeg"
fileSize: 13712705
isVertical: false
uri: "file:///Users/jefflewis/Library/Developer/CoreSimulator/Devices/6B2E3DBA-217F-46B5-AAF2-C1AA540B408E/data/Containers/Data/Application/4CD01B23-6649-4222-BF0E-CB5959732A3E/Documents/images/BECF69B3-9AFF-4CBB-9648-331EF623271C.jpg"
__proto__: Object

Код:

// Image URI
const imageURI = action.newRecipe.image.uri;

// Image Type
const imageType = action.newRecipe.image.type;

// Image Blob
const blob = new Blob([imageURI], {type : `${imageType}`});
console.log('Adding Blob');
console.log(blob.data);

// Firebase Cloud Storage File Path Ref (UUID Generates Randomized File Name)
const filePathRef = imagesRef.child(uuidv4());

// Metadata
const metadata = {
  contentType : `${imageType}`,
};

// Upload File
console.log('Firebase: Uploading image');
const uploadTask = reduxSagaFirebase.storage.uploadFile(filePathRef, blob, metadata);

// Upload Task
uploadTask.on('state_changed', (snapshot) => {
  // Progress
  const progress = (snapshot.bytesTransferred * 100) / snapshot.totalBytes;
  console.log(`Uploading Image: ${progress}%`);
});

// Wait For Upload To Complete
yield uploadTask;

1 Ответ

0 голосов
/ 19 марта 2020

Можно ли увидеть токен доступа , если щелкнуть раздел Расположение файла в консоли? Если нет, это может быть связано с тем, что ваш файл не содержит «токен доступа» .

Попробуйте добавить один в метаданные и посмотрите, как он идет.

const metadata  = {
  contentType : `${imageType}`,
  firebaseStorageDownloadTokens: uuidv4() //In this line you are adding the access token
};

Смотрите, всякий раз, когда вы загружаете изображение с помощью Firebase Console, токен доступа будет автоматически генерироваться. Однако, если вы загружаете изображение с помощью любого Admin SDK или gsutil, вам нужно будет вручную сгенерировать этот токен доступа .

Этот любопытный факт, по-видимому, влияет на предварительный просмотр в консоли Firebase.

Например, я загрузил одно и то же изображение, используя Admin SDK и консоль, и вот результаты.

Загружен с использованием Admin SDK (он постоянно загружается): No access token

Загружен с помощью консоли (имеет токен доступа в разделе Расположение файла) enter image description here

Я знаю, что эта ошибка выглядит немного иначе, но может быть связана. Удачи!

Я обратился к этой проблеме в этот вопрос для Python

...