Удаленная конфигурация Firebase для Интернета
Прошло некоторое время с тех пор, как я написал свою Packt Cookbook о Firebase, тогда в 2017 году я писал о конфигурации Firebase Remote, и о том, что это очень подходящий вариант для функциональных возможностей, основанных на спросе, и это именно то, что делает задание Remote Config Это позволяет вам контролировать способ демонстрации данных / функций в вашем приложении на основе многих факторов, чтобы поддерживать любую бизнес-логику по вашему выбору.
В качестве варианта использования вы можете изменить значения этих переменных или конфигурацию из консоли Firebase, чтобы продемонстрировать новые всплывающие окна со скидками в электронной коммерции или разрешить новый тип функций в вашем приложении, которое было создано, но еще не активировано по какой-либо причине, таким образом, эта функциональность в основном присутствовала исключительно на мобильной платформе Android / iOS, но недавно мы получили такой же потрясающий контроль, на этот раз в Интернете! так что давайте изучим это вместе.
PS: Remote Config on Web все еще находится в стадии бета-тестирования, поэтому используйте его на свой страх и риск для реализации на уровне производства.
Репо 🤓
Как всегда, я создал небольшое репо для нашей демонстрации, которое вы можете - и, конечно, - клонировать / форкнуть и играть в своем пространстве:
Также используя Power of firebase Hosting, я развернул там приложение: https://awesome-d5da4.web.app/, так что вы тоже можете играть с ним вживую 🙏🏻
Сценарий 🎬
Идея состоит в том, чтобы просто показать модальное окно скидки, которое будет продемонстрировано, чтобы сообщить нашим постоянным пользователям, что мы предлагаем им скидку 50% на их следующую покупку, это модальное окно не будет отображаться по умолчанию, скорее, он будет только видимым, когда мы захотим вознаградить наших пользователей с помощью Firebase Remote Config.
Конечный результат 🙈
Нашим конечным результатом будет что-то похожее на изображение волны, простую HTML-страницу, работающую на Bootstrap v4, и некоторый код сценария VanilaJS, который будет приводить в действие логику получения событий и связанную с Firebase, довольно просто.
И это будет дерево кода приложения:
├── ЛИЦЕНЗИЯ
├── README.md
├── assets
│ ├── images
│ │ └── config.png
│ └── стили
│ └── bootstrap.min.css
├── firebase.json
├── index. html
├── package.json
└── yarn.lock
Как видите, у нас будут некоторые ресурсы и изображения, связанные с нашим стилем кода, конфигурациями Firebase над файлом firebase.json, который будет обрабатывать в основном его часть развертывания, простой пакет .json для некоторых метаданных, где наша основная логика будет в файле index.html.
PS: Все в репо 😉
Давайте код 💪
У нас будет простое модальное окно, которое будет выглядеть так:
Наши импортированные скрипты, вот где вещь станет интересной, как вы могли или не знали, хостинг Firebase также может обрабатывать конфигурацию в вашем приложении за вас, только и только если вы решите, что вы будете размещать свое приложение в Служба хостинга Firebase, которая также будет обрабатывать доставку библиотек или часть импорта CDN для библиотек JS на основе Firebase, что означает, что нам не нужно загружать скрипт локально и импортировать их, а скорее сделаем следующее:
Обратите внимание, что часть «/ __ /» в исходном URL-адресе зарезервирована, что означает, что firebase автоматически распознает это и доставит его позже, как только приложение будет запущено локально или размещено.
Кроме того, вы можете спросить, где находится объект конфигурации Firebase и его инициализация? , ну, они вам не понадобятся, если вы используете службу хостинга Firebase, все будет обслуживаться автоматически, потому что Firebase просто сопоставит размещенный проект с его учетными данными, что автоматически означает большую безопасность для вашего приложения. Подробнее об этом можно прочитать здесь.
Теперь откройте тег Script и давайте начнем код:
В прошлых фрагментах мы выполняли плавный переход:
1 - Запуск одноэлементного объекта Remote Config.
2 - Передача некоторых параметров, таких как fetchTimeMillis, который установит время ожидания для процесса извлечения из Firebase Console, и minimumFetchIntervalMillis, которое установит время истечения срока действия значения поля, означает, что один раз срок действия поля истек, он, скорее всего, будет обновлен в ближайшее время, установка очень короткого времени необходима на тот случай, если вы хотите поддерживать свои локальные переменные в актуальном состоянии.
Далее всегда рекомендуется добавлять удаленное значение переменной, для этого мы можем использовать следующее:
Что-то, что я также считаю полезным для моего рассудка, - это правильно назвать вашу переменную и иметь внутригрупповые или самостоятельно используемые схемы переменных, которые будут иметь больше смысла для вашей команды и вашего приложения, вы поблагодарите меня позже, когда у вас будут висеть сотни переменных около 🙈
Далее начинается захватывающая часть: мы определяем способ, которым мы хотим использовать Получить и Активировать значения. Давайте разберемся, что это означает:
Fetch: возьмите конфигурацию Remote Config из консоли и кэшируйте ее в одноэлементном объекте Remote config, который мы создали ранее.
Активировать: готовит наши значения к получению или к использованию.
Объект Firebase Remote Config будет иметь эти значения по отдельности, но также будет иметь функцию fetchAndActivate, которая будет делать обе вещи одновременно и возвращать обещание, которое вы разрешаете, это обещание будет иметь значение результата типа Boolean, которое будет иметь следующее значение:
true: если выбранный вызов был активирован.
false: если мы используем уже загруженную конфигурацию.
Так что теперь вы можете определить желаемое поведение и что продемонстрировать, если у нас появятся новые данные.
Затем нам нужно будет получить данные, для этого у нас будет функция getValue, которая будет захватывать любое значение в консоли по ключу, потому что, как вы увидите, в Remote Config Консоль, все на основе ключа / значения.
Итак, поскольку мы точно знаем, что наше значение будет логическим и никаким другим, Firebase API дает нам возможность анализировать его таким образом, для этого мы можем использовать функцию asBoolean () для получения нашего значение из консоли как логическое, но в зависимости от типа переменной у вас могут быть разные функции, такие как asNumber (), asString (), которые я считаю более удобными для моего использования .
Однажды, если я убедился, что мое значение истинно, я просто демонстрирую модальное окно Discount, которое будет нашим определением выполненного в соответствии с общим сценарием 🥳
А теперь самое интересное, давайте перейдем к нашей консоли Firebase, чтобы проверить, как мы можем добавлять / изменять наши данные.
Как видите, в моей консоли Firebase у нас есть два значения, и одно из них представляет нашу замечательную переменную скидки, которую я установил, не шучу, изменить тип / значение переменной или даже добавить / удалить довольно просто, так что я позволю тебе поиграть с 🤓
После того, как вы закончите их настройку, в правом верхнем углу страницы у вас появится красивая кнопка с надписью «Опубликовать изменение», подобная этой:
После того, как вы опубликуете, все ваши пользователи будут иметь возможность почти в реальном времени, и они обязательно получат вашу потрясающую щедрую скидку.
Технически это запись, обновление везде 💪 !!
Не забудьте передать нам свое 👏 на случай, если оно вам пригодится 🙈
Если вам понравилась эта статья, не стесняйтесь проверять другие мои статьи и подписываться на меня через Средний:
Заранее спасибо 😇!