Skip to content

Commit 91ca0c9

Browse files
Create README.md
Co-Authored-By: Zayniddin Kobilov <102047747+zidan-kohai@users.noreply.github.com>
1 parent 0ef3f6b commit 91ca0c9

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

README.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Unity Firebase Remote Config For Unity Editor
2+
3+
Этот небольшой набор скриптов позволяет в **Editor Mode** (без запуска Play Mode) принудительно обновлять значения из **Firebase Remote Config**, игнорируя кеш и не дожидаясь очередного перезапуска Unity или домейн‐релода.
4+
5+
---
6+
7+
## Предыстория
8+
9+
В старых (да и некоторых новых) версиях Firebase Remote Config для Unity есть проблема: при повторном запросе **вне** Play Mode SDK часто отдаёт устаревшие данные из кеша, пока не произойдёт перезагрузка скриптового домена (например, при запуске Play Mode или перезагрузке Unity). В результате любые изменения, опубликованные в Firebase Console, не сразу подтягиваются в редакторе.
10+
11+
**Решение** – «насильно» переинициализировать Firebase и очищать внутренние структуры, связанные с Remote Config, используя методы, недоступные напрямую (например, `FirebaseApp.DisposeAllApps()`), чтобы получить новую «сессию» Firebase и запросить актуальные данные.
12+
13+
---
14+
15+
## Как установить
16+
17+
1. Скопируйте три скрипта (`FirebaseAppHelper.cs`, `FirebaseRemoteConfigHelper.cs`, `RemoteConfigEditor.cs`) в свой Unity‐проект, желательно в папку **Editor**.
18+
2. Убедитесь, что в проекте уже установлен и подключён **Firebase Remote Config SDK**.
19+
3. Откройте в Unity меню **RimuruDev Tools → Firebase RemoteConfig Editor**.
20+
21+
---
22+
23+
## Как пользоваться
24+
25+
1. **Print RemoteConfig Cache**
26+
Выводит в консоль текущее содержимое внутреннего словаря, где `FirebaseRemoteConfig` хранит свои экземпляры.
27+
28+
2. **Restart Firebase and Fetch Remote Config**
29+
- Очищает кеш Remote Config.
30+
- Через рефлексию вызывает `FirebaseApp.DisposeAllApps()`, «раз‐инициализируя» Firebase.
31+
- Повторно инициализирует Firebase, выставляет `MinimumFetchInterval` в ноль (чтобы отключить кеш).
32+
- Выполняет `FetchAsync` и `ActivateAsync`.
33+
- Выводит полученные актуальные данные в окно (и в консоль).
34+
35+
Таким образом, вы можете многократно изменять параметры Remote Config в консоли, публиковать их, а затем нажимать «Restart Firebase and Fetch Remote Config» — и получать новые значения **сразу**, без запуска Play Mode и без перезапуска Unity.
36+
37+
---
38+
39+
## Важные детали
40+
41+
- Код основан на рефлексии и доступе к внутренним методам Firebase SDK, то есть **официально не поддерживается**. Однако для тестирования и отладки этого вполне достаточно.
42+
- Тестировалось на:
43+
- **Firebase Remote Config** версии `12.2.1`
44+
- **Unity 2022.3.35f1**
45+
- Успешно применялось в реальном проекте с большой пользовательской базой.
46+
- В релизных сборках (на девайсах/платформах) кеш работает штатно; проблема возникает только при «горячем» тестировании в редакторе.
47+
48+
---
49+
50+
## Лицензия
51+
52+
Лицензируется под [MIT License](LICENSE).

0 commit comments

Comments
 (0)