Сжатие данных в Firebase

У меня есть скрипт PHP, который делает запрос к веб-сервису. Я хочу, чтобы результаты этого запроса были вставлены в строку в базе данных Firebase в реальном времени. Затем эта база данных Firebase отслеживается на предмет изменений приложением Android.

Объем текста в строке часто может составлять 800 Кб, поэтому я хотел бы сжать это. В противном случае мое приложение должно будет загрузить 800 Кбайт, прежде чем произойдет событие OnDataChanged.

Я сделал следующее (в сценарии PHP)

Я принимаю строку размером 800 КБ с веб-службы.
Затем я запускаю GZip в PHP-скрипте.
В результате я использую Base64_Encode, и это то, что я вставляю в Firebase.

Кажется, он работает нормально, и мне кажется, что сжатие составляет около 90%, то есть вставлено только 80 КБ, а не 800 КБ. Это, однако, «круглый дом» способ сделать это.

Есть лучший способ сделать это? Конечно, должно быть. Есть ли способ получить Firebase для GZip, который отправляется в мое приложение? В конце концов приложение использует Firebase SDK.

Вот код PHP, который пишет в Firebase …

$compressed_gzipjson = gzencode($jsonresponse, 9);

$firebase->set(DEFAULT_PATH . '/' , base64_encode($compressed_gzipjson));

Любой совет очень приветствуется.

0

Решение

Это звучит как невероятно расточительное использование базы данных в реальном времени. База данных Firebase — отличный инструмент для синхронизации небольших фрагментов структурированных (JSON) данных. Это не идеальное соответствие для неструктурированных данных, и тот факт, что вы в порядке, распаковывая текст, означает, что нет необходимости синхронизировать структуру.

Почему бы вам просто не сохранить текст в более дешевом механизме хранения файлов (например, Firebase Storage)? Затем сохраните URL-адрес файла в базе данных Firebase и синхронизируйте его с клиентами таким образом.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]