Ви, ймовірно, потрапляли в ситуацію, коли вам потрібно виправити незначну візуальну помилку або запустити блимавий розпродаж, але ви усвідомлювали, що для цього потрібно завантажити нову версію в магазин додатків і чекати на її схвалення від Google або Apple. Цей виснажливий і трудомісткий процес може легко зірвати терміни кампанії. Саме тут на допомогу приходить Firebase Remote Config — фантастичний інструмент, який дозволяє змінювати поведінку та зовнішній вигляд вашого додатка з хмари, без необхідності користувачеві ворухнути пальцем або завантажувати будь-які оновлення.
Уявіть собі можливість вирішувати, хто яку функцію бачитиме, залежно від країни чи версії програми, яку вони використовують. Ця можливість дистанційно маніпулювати змінними ключ-значення не лише спрощує роботу розробників, але й дозволяє їм експериментувати з інтерфейсом у режимі реального часу, регулюючи складність гри або змінюючи рекламний банер на ходу, і все це з мінімальним впливом на продуктивність пристрою.
Як працюють оновлення в режимі реального часу
Коли ми говоримо про віддалене налаштування в режимі реального часу, ми маємо на увазі можливість отримувати зміни параметрів одразу після їх публікації на сервері. Для досягнення цієї мети Firebase SDK налаштовує слухач у режимі реального часу , який підтримує відкрите HTTP-з'єднання з сервером. Замість перевірки оновлень кожні кілька хвилин, сервер надсилає сигнал недійсності , коли виявляє новішу версію конфігурації.
Якщо на сервері є нові дані, він негайно повідомляє клієнта; в іншому випадку з'єднання очікує. Щойно програма отримує сповіщення, вона автоматично отримує конфігурацію та виконує зворотний виклик. Найкраще те, що цей процес ігнорує типові інтервали кешування, що дозволяє впроваджувати зміни майже миттєво. Важливо зазначити, що це з'єднання залишається активним, поки програма працює на передньому плані , і що Firebase підтримує до 20 мільйонів одночасних підключень на проект.
Implementación técnica y flujo de trabajo
Для реалізації цього ідеальним підходом є поєднання традиційних викликів fetch під час запуску програми з методом addOnConfigUpdateListener під час сеансу користувача. Це гарантує, що програма запускається з актуальними даними та залишається оновленою під час використання. Коли подія спрацьовує onUpdateSDK надає нам об'єкт configUpdate які саме деталі які ключові фактори змінилисяабо тому, що параметр було додано, його значення було змінено, або його джерело було змінено.
З боку розробки, особливо в Android, процес починається з імпорту необхідних залежностей з Специфікація елементів Firebaseвключаючи віддалену конфігурацію та Google Analytics. Важливо визначити значення за замовчуванням у додатку через XML-файл (наприклад, remote_config_defaults.xml) або карту даних. Це гарантує, що Додаток працюватиме коректно без інтернету. при першому запуску. Щоб застосувати зміни, використовуються такі методи: fetchAndActivate(), які завантажують значення з сервера та активують їх, щоб вони були видимими в інтерфейсі.
Розширена сегментація та персоналізація
Одна з найкращих переваг цього інструменту – його здатність по-різному ставитися до користувачів. Ми можемо створювати умовні значення на основі певних критеріїв. Наприклад, якщо ми хочемо, щоб акція була видимою лише в Іспанії, але не у Франції, ми налаштовуємо умову фільтра країни . Ми також можемо сегментувати за версією програми, мовою або аудиторіями, створеними в Google Analytics.
Для тих, хто хоче піти далі, існує персоналізація на основі машинного навчання , яка автоматично адаптує досвід кожного користувача для оптимізації таких цілей, як кліки на оголошення та утримання. Крім того, можливе поступове розгортання , що дозволить новим функціям ознайомитися лише невеликому відсотку користувачів, а журнали збоїв та помилок порівняти з контрольною групою, щоб переконатися, що все працює безперебійно, перш ніж буде повністю розгорнуто.
Обмеження та належні практики
Це не зовсім магія, і є правила, яких ми повинні дотримуватися, щоб уникнути помилок. Наприклад, ніколи не слід використовувати віддалене налаштування для примусового оновлення, що вимагає явної авторизації користувача , оскільки це може створити недовіру. Це також не місце для зберігання конфіденційних даних ; хоча інформація зашифрована, будь-який користувач з технічними знаннями може отримати доступ до параметрів, отриманих з пристрою.
Щодо технічних обмежень, проєкт може враховувати до 3,000 параметрів за типом шаблону та зберігати до 300 їхніх версій. Також потрібно бути обережним з регулювання (дроселювання) викликівЯкщо ми зробимо забагато запитів на відновлення за дуже короткий час, Firebase може тимчасово заблокувати нас. На етапі розробки рекомендується зменшити кількість запитів. minimumFetchIntervalInSeconds для швидкої ітерації, але це значення має повернутися до нормального стану у виробничій версії.
Інші альтернативи сховищу
Важливо не плутати віддалену конфігурацію з повноцінною базою даних. Якщо вам потрібно зберігати ігрові стани, чати або складні профілі користувачів, Cloud Firestore або Firebase Realtime Database – ідеальні рішення . Хоча віддалена конфігурація призначена для простих налаштувань пар «ключ-значення» та поведінки, бази даних розроблені для динамічних, структурованих даних , які постійно змінюються залежно від взаємодії з користувачем.
Усе керування цими налаштуваннями централізовано в консолі Firebase, де ми можемо редагувати параметри, призначати кольори умовам, щоб уникнути плутанини, та публікувати зміни одним клацанням миші. Зрештою, інтеграція цієї системи дозволяє додатку бути живим організмом, здатним розвиватися та адаптуватися, не змушуючи користувача проходити через нудний екран завантаження з магазину додатків щоразу, коли він хоче змінити колір або текст.
