Я использую URL-адреса автоматического SDK для инициализации Firebase:
<script src="/__/firebase/6.1.1/firebase-app.js"></script>
<script src="/__/firebase/6.1.1/firebase-auth.js"></script>
<script src="/__/firebase/6.1.1/firebase-storage.js"></script>
<script src="/__/firebase/6.1.1/firebase-messaging.js"></script>
<script src="/__/firebase/6.1.1/firebase-firestore.js"></script>
<script src="/__/firebase/init.js"></script>
Мне нужно установить authDomain для моего служебного домена, который настроен на Firebase, чтобы в аутентификации Google gmail отображалось имя моего домена ине мое имя проекта Firebase.
Должен ли я прекратить использовать эти URL и вместо этого создать конфигурацию и инициализировать Firebase вручную?Или есть способ обновить authDomain отдельно?
Я попробовал следующее, чтобы посмотреть, смогу ли я получить параметры конфигурации, и затем я планировал изменить authDomain.Вместо этого я получил ошибку.
<script>
fetch('/__/firebase/init.json').then(async response => {
firebase.initializeApp(await response.json());
});
</script>
Вот ошибка из журнала разработчика:
(индекс): 195 Uncaught (в обещании) TypeError: Не удалось выполнить 'json'on' Response ': основной поток заблокирован (индекс): 195 (анонимный) @ (индекс): 195 errors.ts: 137 Перезапись базового поля FirebaseError "name" может вызвать непредвиденное поведение.
[ОБНОВЛЕНИЕ} Кажется, что выборка асинхронная и что все сценарии загружаются также асинхронно.Суть в том, что почти невозможно получить информацию о конфигурации программно, изменить authDomain, а затем вызвать initializeApp перед загрузкой моих скриптов фреймворка и инициализацией моего основного приложения, которое уже использует firebase.
Вот асинхронная версия, которую я попробовал:
await fetch('/__/firebase/init.json').then(async (response)=> {
let config = await response.json();
config[authDomain] = 'mydomain.com';
await firebase.initializeApp(config);
});