Проблема:
Когда я пытаюсь загрузить изображение в свое ведро для хранения Firebase (
Код: Выделить всё
gs://checksst-faster.firebasestorage.appДоступ к Xmlhttprequest at '...' from Origin 'https://esstsas.net' был заблокирован политикой Cors: Preflight. /> < /blockquote>
Это соответствующий код JavaScript, который обрабатывает загрузку изображения: < /strong> Я использую Firebase JS SDK (V11.6.1). Объект хранилища был правильно инициализирован.
javascript
Код: Выделить всё
// This function is called when the "Save" button is clicked
async function saveInspection() {
const file = lastSelectedFile; // lastSelectedFile is the user's selected image File object
const userId = auth.currentUser.uid;
if (!file || !userId) {
console.error("File or User ID is missing.");
return;
}
try {
console.log("Step 1: Resizing image...");
const resizedImageBlob = await resizeImage(file); // Resizes image to a Blob
console.log("Step 2: Uploading to Storage...");
const fileName = `${Date.now()}-${file.name}`;
const storageRef = ref(storage, `images/${userId}/${fileName}`);
// This is the line that fails
const uploadTask = await uploadBytes(storageRef, resizedImageBlob);
console.log("Step 3: Getting download URL...");
const downloadURL = await getDownloadURL(uploadTask.ref);
// ... code to save the downloadURL to Firestore would go here
console.log("Upload successful:", downloadURL);
} catch (error) {
console.error("DETAILED UPLOAD ERROR:", error);
}
}
Я уверен, что это не простая ошибка конфигурации, потому что я выполнил обширную устранение неполадок:
- coror мое ведро. Команда GSUTIL CORS GET GS: //checksst-faster.firebasestorage.app подтверждает, что политика правильно установлена с помощью моего происхождения: [{"Origin": ["https://esstsas.net", "https://www.essts.net"], "Метод": "get", ",", ", варианты", ", варианты", ",", ", варианты"? ...}]
- тест подстановочного знака: в качестве теста, я также применил политику подстановочного знака с «Origin»: ["*"] . Ошибка все еще сохранялась.
- Кэширование на стороне клиента: я исключил кэширование браузера, выполняя твердое обновление (Ctrl+Shift+R), тестируя в режиме Incognito, используя совершенно разные брейузер и тестируя на различной сети (мобильный HotSpot). /> Правила Firebase: < /strong> мои правила безопасности Firestore и хранения правильно настроены, чтобы разрешить доступ для аутентифицированных пользователей ().
Код: Выделить всё
allow read, write: if request.auth != null && request.auth.uid == userId;
Есть ли другие настройки на уровне проекта, проблема сети или известная ошибка, которая может быть переоценкой политики CORS в ведро?
Подробнее здесь: https://stackoverflow.com/questions/797 ... ion-and-ca
Мобильная версия