Постоянная ошибка Firebase «auth/unauthorized-domain», несмотря на то, что домен правильно добавлен в динамическую средуJavascript

Форум по Javascript
Ответить
Anonymous
 Постоянная ошибка Firebase «auth/unauthorized-domain», несмотря на то, что домен правильно добавлен в динамическую среду

Сообщение Anonymous »

Я разрабатываю веб-приложение React, используя Firebase для аутентификации (вход в Google) и Firestore. Я сталкиваюсь с постоянной ошибкой авторизации/неавторизованного домена, которую не могу устранить, несмотря на выполнение всех стандартных шагов по устранению неполадок.
Среда:
Приложение работает в динамической среде разработки, где источник (

Код: Выделить всё

window.location.origin
) является временным и меняется при каждом сеансе (например, URL-адрес прокси-сервера, например https://[unique-hash].proxy.googleprod.com).
Проблема:
Когда я пытаюсь войти в систему Google с помощью SignInWithPopup, Firebase постоянно выдает ошибку авторизации/неавторизованный домен.
Мое приложение имеет встроенное руководство, которое правильно определяет текущий источник и дает мне указание добавить его в список «Авторизованные домены» аутентификации Firebase.
Я точно выполняю эти шаги, но даже после ожидания распространения изменений в течение 5–10 минут каждая последующая попытка входа завершается с той же ошибкой.
Что я уже пробовал:
  • Добавление домена. Я тщательно скопировал полный файл window.location.origin и добавил его в Консоль Firebase → Аутентификация → Настройки → Авторизованные домены. Я дважды проверил наличие опечаток или лишних символов.
  • Ожидание распространения: Я ждал более 5 минут после добавления домена, прежде чем повторить попытку входа в систему несколько раз.
  • Проверка конфигурации: Мой объект firebaseConfig в коде является прямой копией и вставкой из одного указано в настройках моего проекта Firebase и проверено несколько раз.
  • Обеспечение согласованности SDK. Изначально у меня были конфликтующие версии Firebase SDK, загруженные через мою карту импорта index.html. С тех пор я исправил это, чтобы гарантировать, что во все модули Firebase загружается только одна согласованная версия (10.12.2). Это не решило проблему.
Соответствующий код:
index.html (Импортировать настройки карты)

Код: Выделить всё





HelpDeskApp Firebase



{
"imports": {
"react": "https://aistudiocdn.com/react@^19.2.0",
"react-dom/": "https://aistudiocdn.com/react-dom@^19.2.0/",
"react/": "https://aistudiocdn.com/react@^19.2.0/",
"firebase/app": "https://www.gstatic.com/firebasejs/10.12.2/firebase-app.js",
"firebase/auth": "https://www.gstatic.com/firebasejs/10.12.2/firebase-auth.js",
"firebase/firestore": "https://www.gstatic.com/firebasejs/10.12.2/firebase-firestore.js",
"@google/genai": "https://aistudiocdn.com/@google/genai@^1.28.0"
}
}






services/firebaseService.ts (Логика инициализации и входа в Firebase)

Код: Выделить всё

import { initializeApp, getApp, getApps, FirebaseApp } from 'firebase/app';
import {
getAuth,
signInWithPopup,
GoogleAuthProvider,
Auth,
User,
onAuthStateChanged
} from 'firebase/auth';
import { getFirestore, Firestore } from 'firebase/firestore';

const firebaseConfig = {
apiKey: "AIzaSyAy-kTbkFrA1Gm6zvZX14I9Ufdeo8SKCTc",
authDomain: "helpdeskapp-firebase.firebaseapp.com",
projectId: "helpdeskapp-firebase",
storageBucket: "helpdeskapp-firebase.firebasestorage.app",
messagingSenderId: "286380499643",
appId: "1:286380499643:web:b3e793a4e53b0a89e97f9e",
measurementId: "G-FJ5VFDQEK7"
};

class FirebaseService {
private app: FirebaseApp | null = null;
private auth: Auth | null = null;
private db: Firestore | null = null;

public get projectId(): string {
return firebaseConfig.projectId;
}

public init(): void {
if (getApps().length === 0) {
this.app = initializeApp(firebaseConfig);
} else {
this.app = getApp();
}
this.auth = getAuth(this.app);
this.db = getFirestore(this.app);
}

public async login(): Promise {
if (!this.auth) this.init();
const provider = new GoogleAuthProvider();
try {
const result = await signInWithPopup(this.auth!, provider);
return result.user;
} catch (error) {
console.error("Popup sign-in error:", error);
throw error;
}
}

public onAuthChange(callback: (user: User | null) => void): () => void {
if (!this.auth) this.init();
return onAuthStateChanged(this.auth!, callback);
}
// ... other firestore methods
}

export const firebaseService = new FirebaseService();
Вопрос:
При том, что:
  • Домен корректно добавляется в список разрешенных
  • Жду распространения
  • Конфигурация правильная
  • Конфликтов версий SDK нет
Что еще может быть вызывает эту постоянную ошибку аутентификации/неавторизованного домена?
Существует ли известная проблема с такими средами динамического происхождения, потенциальная проблема с кэшированием или есть ли другие шаги отладки, которые я мог пропустить?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ing-correc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»