Почему эта ошибка Firebase IDBIndex возникает в веб-приложении Smart TV и есть ли обходные пути? - PullRequest
1 голос
/ 09 мая 2020

Фон и контекст

Мы создаем HTML бесплатные игры для широко распространенных телевизионных приставок, в которые можно будет играть на телевизорах пользователей. Сам бокс запускает браузер Webkit (WPE), работающий на модифицированной версии RDK . Устройство может взаимодействовать только с серверами, совместимыми с IPv6, и все сторонние конечные точки должны быть внесены в белый список.

Мы хотим отслеживать данные о поведении пользователей в нашей игре и хранить их в базе данных, которую наш аналитик данных может запросить для проведения подробного анализа. Намерение состоит в том, чтобы использовать эти данные для улучшения настройки игр, игрового дизайна и креативного дизайна, чтобы улучшить взаимодействие с пользователем и оптимизировать удержание.

Решение, которое мы разработали: регистрировать события в Firebase Analytics и связывать эту службу с BigQuery для сложных запросов.

- Проблема -

Первая проблема - Когда мы пытаемся загрузить скрипты из файла html нашей страницы (согласно этому руководству ), все работает нормально, когда мы тестируем в Google Chrome ... Однако на Smart TV Box скрипты загружаются и выходят из строя. По какой-то причине обозреватель в поле не загружает сценарии в том порядке, в котором они определены на странице, даже если свойство defer добавлено к элементам сценария html. Это вызывало проблемы, когда файл сценария для пакета Firebase Analytics инициализировался до завершения загрузки базового пакета Firebase / приложения. Мы также увидели загадочную ошибку, связанную с "IDBIndex", но подумали, что она связана с проблемой порядка загрузки скрипта ...

Мы объединили firebase npm package в его собственный минифицированный скрипт файл с помощью webpack, с небольшим количеством logi c для его инициализации с помощью свойств нашего приложения. Намерение состоит в том, чтобы загрузить базовый пакет и пакеты аналитики и мониторинга производительности одновременно, вместе и инициализировать их в правильном порядке. Он загружается нашим файлом html отдельно от файла сценария c игрового журнала, а остальная часть нашего игрового журнала c будет ожидать события «DOMContentLoaded» перед запуском.

Возникает реальная проблема - теперь приведенное выше решение по-прежнему отлично работает в Google Chrome, но при тестировании на оборудовании Smart TV мы по-прежнему получаем следующую ошибку из пакета IDB, используемого сценарием аналитики firebase :

Ошибка

Мы думаем, что это связано с отсутствием функции браузера в том, что работает на коробке, но также возможно, что это связано с фурнитура коробки. Коробка не предоставляет никаких форм локального постоянного хранилища. Все постоянные данные должны быть сохранены в «облачном поваре ie», который представляет собой просто повар ie, сохраненный в учетной записи пользователей Smart TV и синхронизированный с серверами платформы Smart TV. Он загружается с их серверов перед инициализацией нашего приложения при каждом запуске.

Я работал с группой поддержки разработчиков платформы, и все, что они смогли сказать, было следующее:

«Похоже, приложение пытается использовать базу данных индекса, которая отключена на устройств, я предлагаю попытаться исключить базу данных firebase из базы данных firebase, которую вы пытаетесь использовать. Это должно заставить ее работать. "

Насколько мне известно, это не то, что я могу изменить конфигурацию плагина веб-приложения Firebase. Я ошибаюсь?

Пожалуйста, дайте мне знать, что еще я могу предоставить. Заранее большое спасибо за вашу помощь!

...