Среда:
Приложение работает в динамической среде разработки, где источник (
Код: Выделить всё
window.location.originПроблема:
Когда я пытаюсь войти в систему 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"
}
}
Код: Выделить всё
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
Мобильная версия