https://github.com/rimurudev/unity-firebase-remoteconfig-for-unityeditor
Unity Firebase Remote Config For Unity Editor - Этот небольшой набор скриптов позволяет в Editor Mode (без запуска Play Mode) принудительно обновлять значения из Firebase Remote Config, игнорируя кеш и не дожидаясь очередного перезапуска Unity или домейн‐релода.
https://github.com/rimurudev/unity-firebase-remoteconfig-for-unityeditor
abyssmoth firebase firebase-remote-config firebase-unity firebase-unity-remote-config rimuru-dev rimurudev unity-editor-firebase-remote-config unity-editor-remote-config unity-firebase unity-firebase-remote-config
Last synced: 3 months ago
JSON representation
Unity Firebase Remote Config For Unity Editor - Этот небольшой набор скриптов позволяет в Editor Mode (без запуска Play Mode) принудительно обновлять значения из Firebase Remote Config, игнорируя кеш и не дожидаясь очередного перезапуска Unity или домейн‐релода.
- Host: GitHub
- URL: https://github.com/rimurudev/unity-firebase-remoteconfig-for-unityeditor
- Owner: RimuruDev
- License: mit
- Created: 2025-04-05T09:19:49.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-04-05T09:31:57.000Z (6 months ago)
- Last Synced: 2025-04-19T00:20:21.471Z (6 months ago)
- Topics: abyssmoth, firebase, firebase-remote-config, firebase-unity, firebase-unity-remote-config, rimuru-dev, rimurudev, unity-editor-firebase-remote-config, unity-editor-remote-config, unity-firebase, unity-firebase-remote-config
- Language: C#
- Homepage:
- Size: 7.81 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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`.
- Выводит полученные актуальные данные в окно (и в консоль).
---
Таким образом, вы можете многократно изменять параметры Remote Config в консоли, публиковать их, а затем нажимать «Restart Firebase and Fetch Remote Config» — и получать новые значения **сразу**, без запуска Play Mode и без перезапуска Unity.
---
## Важные детали
- Код основан на рефлексии и доступе к внутренним методам Firebase SDK, то есть **официально не поддерживается**. Однако для тестирования и отладки этого вполне достаточно.
- Тестировалось на:
- **Firebase Remote Config** версии `12.2.1`
- **Unity 2022.3.35f1**
- Успешно применялось в реальном проекте с большой пользовательской базой.
- В релизных сборках (на девайсах/платформах) кеш работает штатно; проблема возникает только при «горячем» тестировании в редакторе.---
## Лицензия
Лицензируется под [MIT License](LICENSE).