An open API service indexing awesome lists of open source software.

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 или домейн‐релода.

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`.
- Выводит полученные актуальные данные в окно (и в консоль).

image

---

image

image

image

Таким образом, вы можете многократно изменять параметры 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).