Пользовательское хранилище доступно вам как разработчику, только когда действие активно. Эти данные недоступны после закрытия действия, поэтому вы не сможете асинхронно обновлять поле. Если вам нужен асинхронный доступ, я бы предложил использовать внешнюю базу данных и хранить только строку базы данных ключ в пользовательском userStorage
. Таким образом, вы можете получить доступ к данным и изменять их в любое время.
Метод setInterval
будет периодически запускать функцию, но может работать не так, как вы хотите. Он только запускает функцию, пока активна среда выполнения. Многие сервисы завершат работу через некоторое время. Облачные функции, например, иногда запускаются, но затем отключаются, когда не используются. Кроме того, облачные функции можно запускать несколько раз в параллельных экземплярах, выполняя функцию setInterval
несколько раз параллельно. Это увеличит счетчик больше, чем вы хотите.
Использование выделенного сервиса Cron поможет сократить количество одновременных выполнений, а также обеспечит его запуск при желании.
Вы не можете напрямую получить доступ к часовому поясу пользователя в действии, то есть вы не сможете определить конец дня . Вы можете изменять контент каждый день, но у него будет какое-то смещение. Чтобы обойти это, у вас может быть несколько заданий cron, которые выполняются для разных сегментов пользователей.
Используя поле conv.user.locale
, вы можете получить их язык. en-US
обычно предназначен для американских пользователей, которые обычно живут в США. Хотя это может привести к странному поведению при путешествии, вы можете включить пользователей в определенный период выполнения. Выполняя задачу в одночасье, либо в 1:00, либо в 4:00 они, вероятно, не будут знать, но знают, что она обновляется в одночасье.
Вы можете использовать помощник определения местоположения , чтобы получить более точное местоположение пользователя. Это может быть немного ненужно, но вы можете использовать это значение, чтобы определить его часовой пояс, а затем получить «полночь» этого пользователя, чтобы вставить правильную корзину Cron.