Переключение Firebases в проекте Swift

Я случайно добавил не ту Firebase (назовем ее СТАРОЙ) в свой проект Swift, поэтому сегодня я просмотрел процесс добавления вместо него правильного (NEW). Я удалил старый файл конфигурации plist и добавил новый, но когда я запускаю приложение, я получаю сообщение об ошибке:

Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «Предоставленный сегмент: OLD.appspot.com не соответствует сегменту, указанному в конфигурации FIRApp: NEW.appspot.com»

В файле GoogleService-Info.plist поле STORAGE_BUCKET правильно указано как NEW.appspot.com, а OLD.appspot.com нигде не отображается. Итак, как я могу решить эту проблему?


person mjr    schedule 24.05.2016    source источник
comment
Указываете ли вы СТАРОЕ имя в другом месте проекта (например, при создании ссылки на хранилище)?   -  person Ian Barber    schedule 24.05.2016
comment
@IanBarber Это сработало бы ... не могу поверить, что я искал везде, но не там   -  person mjr    schedule 24.05.2016
comment
Привет @mjr, так как ты это решил? у меня такая же проблема спасибо   -  person Kerby Jean    schedule 03.06.2016
comment
@KerbyJean Я явно настроил ссылку на хранилище со СТАРЫМ URL-адресом, например, firebase.storage().reference("OLD.firebaseio.com") вместо просто firebase.storage().reference(), который автоматически получает правильный URL-адрес.   -  person mjr    schedule 03.06.2016


Ответы (2)


У меня возникла эта проблема при работе с двумя учетными записями iOS, поэтому я ожидаю, что ответ будет аналогичным.

Основная причина в том, что старый пользователь был кэширован на вашем устройстве. Это означает, что каждый раз, когда вы входите в систему с более новым, возникают ошибки из-за ожидания старого пользователя, который настроен на предыдущем URL-адресе. К сожалению, удаление приложения, очистка приложения, вызов обновления модуля, вход в новую версию и вызов выхода из системы и т. д., похоже, никак не влияют на проблему.

Кажется, это происходит, когда пользователь вошел в систему, а затем поверх загружается новая версия с другим URL-адресом.

Единственный способ, которым мне удалось это исправить, - это сбросить приложение до его предыдущих настроек (вернуть СТАРЫЙ URL-адрес firebase, а также файл служб Google OLD.plist). Загрузите приложение, а затем выйдите из приложения, это должно удалить кешированные пользовательские настройки. Теперь, когда вы загружаетесь с новыми настройками, он не должен входить в систему предыдущего пользователя (в зависимости от настроек вашего приложения для автоматического входа) и должен позволить вам успешно войти в новую учетную запись.

При этом не забудьте загрузить новый файл .plist, а также убедиться, что введен правильный идентификатор пакета и URL-адрес firebase.

ПРИМЕЧАНИЕ. Если вы столкнулись с этой проблемой в симуляторе, я думаю, вы можете сбросить содержимое и настройки. Это находится в

Симулятор -> Сбросить содержимое и настройки...

Надеюсь, это поможет

person simon_smiley    schedule 05.08.2016

Я смог исправить это, проверив свой GoogleService-Info.plist. Если вы использовали файл .plist несколько раз, убедитесь, что вы добавили нужный файл в свой проект. Вы всегда можете вернуться к своей консоли Firebase. Нажмите на значок настроек рядом с Обзор. Нажмите «Настройки проекта», выберите приложение, для которого вы хотите загрузить файл .plist. Это решит любую проблему...

person Sneha Gindi    schedule 26.05.2017