Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Unity Firebase Remote Config For Unity Editor - Этот небольшой набор скриптов позволяет в Editor Mode (без запуска Play Mode) принудительно обновлять значения из Firebase Remote Config, игнорируя кеш и не дожидаясь очередного перезапуска Unity или домейн‐релода.

License

Notifications You must be signed in to change notification settings

RimuruDev/Unity-Firebase-RemoteConfig-For-UnityEditor

Repository files navigation

Unity Firebase Remote Config For Unity Editor

Этот небольшой набор скриптов позволяет в Editor Mode (без запуска Play Mode) принудительно обновлять значения из Firebase Remote Config, игнорируя кеш и не дожидаясь очередного перезапуска Unity или домейн‐релода.


Предыстория

В старых (да и некоторых новых) версиях Firebase Remote Config для Unity есть проблема: при повторном запросе вне Play Mode SDK часто отдаёт устаревшие данные из кеша, пока не произойдёт перезагрузка скриптового домена (например, при запуске Play Mode или перезагрузке Unity). В результате любые изменения, опубликованные в Firebase Console, не сразу подтягиваются в редакторе.

Решение – «насильно» переинициализировать Firebase и очищать внутренние структуры, связанные с Remote Config, используя методы, недоступные напрямую (например, FirebaseApp.DisposeAllApps()), чтобы получить новую «сессию» Firebase и запросить актуальные данные.


Как установить

  1. Скопируйте три скрипта (FirebaseAppHelper.cs, FirebaseRemoteConfigHelper.cs, RemoteConfigEditor.cs) в свой Unity‐проект, желательно в папку Editor.
  2. Убедитесь, что в проекте уже установлен и подключён Firebase Remote Config SDK.
  3. Откройте в Unity меню RimuruDev Tools → Firebase RemoteConfig Editor.

Как пользоваться

  1. Print RemoteConfig Cache
    Выводит в консоль текущее содержимое внутреннего словаря, где FirebaseRemoteConfig хранит свои экземпляры.

  2. Restart Firebase and Fetch Remote Config

    • Очищает кеш Remote Config.
    • Через рефлексию вызывает FirebaseApp.DisposeAllApps(), «раз‐инициализируя» Firebase.
    • Повторно инициализирует Firebase, выставляет MinimumFetchInterval в ноль (чтобы отключить кеш).
    • Выполняет FetchAsync и ActivateAsync.
    • Выводит полученные актуальные данные в окно (и в консоль).
image
image image image

Таким образом, вы можете многократно изменять параметры Remote Config в консоли, публиковать их, а затем нажимать «Restart Firebase and Fetch Remote Config» — и получать новые значения сразу, без запуска Play Mode и без перезапуска Unity.


Важные детали

  • Код основан на рефлексии и доступе к внутренним методам Firebase SDK, то есть официально не поддерживается. Однако для тестирования и отладки этого вполне достаточно.
  • Тестировалось на:
    • Firebase Remote Config версии 12.2.1
    • Unity 2022335f1
  • Успешно применялось в реальном проекте с большой пользовательской базой.
  • В релизных сборках (на девайсах/платформах) кеш работает штатно; проблема возникает только при «горячем» тестировании в редакторе.

Лицензия

Лицензируется под MIT License.

About

Unity Firebase Remote Config For Unity Editor - Этот небольшой набор скриптов позволяет в Editor Mode (без запуска Play Mode) принудительно обновлять значения из Firebase Remote Config, игнорируя кеш и не дожидаясь очередного перезапуска Unity или домейн‐релода.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

Languages

AltStyle によって変換されたページ (->オリジナル) /