Структурирование Firebase для большого массива строк

У меня есть вопрос. Если я хочу загрузить большой массив строк (которые в основном будут тегами категорий для автозаполнения поиска в приложении Android), мы говорим о 20 000 или около того строк, переданных как

HashMap<String,String> tags = new HashMap<>();
tags.add(tag,category);
mDatabase.child("categories").setValue(tags);

в базу данных Firebase Realtime. Эта реализация работает, но поскольку речь идет о большом количестве узлов, Firebase отключает realtime-режим и переходит в режим только для чтения. Есть ли способ структурировать данные, чтобы избежать этого? Я думаю разделить теги на подузлы, упорядоченные по буквам.

Что-то вроде :

categories
  - a
    - tag - category
    - tag - category 
  - b 
    - tag - category
    - tag - category

и т. д.

Это позволит избежать переключения в режим «Только для чтения» в консоли Firebase?


person Alex    schedule 08.02.2017    source источник
comment
Список категорий не должен храниться в виде массива. Это набор, поэтому его следует хранить как таковой. См. мой ответ здесь: stackoverflow.com/questions/40656589/   -  person Frank van Puffelen    schedule 08.02.2017
comment
Помимо этого режим только для чтения активируется, когда у вас есть большое количество дочерних узлов и/или большой размер данных в месте, где вы открываете консоль базы данных Firebase. Если вы хотите, чтобы режим реального времени оставался активным, уменьшите количество узлов и размер данных.   -  person Frank van Puffelen    schedule 08.02.2017
comment
@Frank van Puffelen, спасибо за советы, хотя у меня есть более новая идея. Мне нужно загружать этот словарь предложений только один раз в 24 часа для моего приложения, поэтому мне на самом деле не нужна часть базы данных FB в реальном времени. Я думаю о том, чтобы хранить категории внутри xml в хранилище Firebase (не в базе данных реального времени) и использовать задачу ASink, вытягивая ее каждые 24 часа и вставляя в базу данных SQL. Я слишком усложняю вещи, делая это?   -  person Alex    schedule 08.02.2017
comment
Если пользователи могут изменить предложения, Firebase Storage действительно является хорошим местом. Если только вы измените его, вам следует подумать о хостинге Firebase. См. мой ответ здесь.   -  person Frank van Puffelen    schedule 09.02.2017
comment
@ Фрэнк ван Паффелен Нет, они не могут и не должны. Я тоже думал о хостинге FIrebase, мне также нужно хранить некоторые изображения, которые в настоящее время находятся в хранилище, но я думаю, что я тоже перенесу их на хостинг, поскольку их также не нужно изменять. Большое спасибо за ответ, я думаю, что пойду по маршруту, так как это имеет гораздо больше смысла.   -  person Alex    schedule 09.02.2017
comment
Рад слышать Алекс. Я собираюсь закрыть вопрос как дубликат, потому что вы пошли по этому пути.   -  person Frank van Puffelen    schedule 09.02.2017