Как правильно структурировать локализованный контент в Cloud Firestore? - PullRequest
0 голосов
/ 08 января 2019

Я думаю о переходе на Cloud Firestore из ratabase в реальном времени и задаюсь вопросом, как правильно настроить структуру данных для моего локализованного контента.

Вот как это было структурировано в RTDB:

articles
   en-US
      article_01
   de-DE
      article_01

В Firestore, я бы создал что-нибудь подобное?

Collection: articles
   document: article_01

И затем вложить все данные article_01 в две карты, называемые «en-US» и «de-DE»?

Не уверен, что нет лучшего способа структурировать локализованные данные в Firestore?

Спасибо за любую помощь:)

1 Ответ

0 голосов
/ 08 января 2019

Существует простой способ структурирования таких данных в Cloud Firestore. Таким образом, возможная схема может быть:

Firestore-root
   |
   --- articles (collection)
        |
        --- articleId (document)
        |     |
        |     --- language: "en-US"
        |     |
        |     --- //other article properties
        |
        --- articleId (document)
              |
              --- language: "de-DE"
              |
              --- //other article properties

Используя эту схему базы данных, в Android вы можете просто:

  • Получить все статьи независимо от языка, используя всего лишь CollectionReference:

    FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
    CollectionReference articlesRef = rootRef.collection("articles");
    articlesRef.get().addOnCompleteListener(/* ... */);
    
  • Получить все статьи, которые соответствуют одному языку, используя Query:

    FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
    Query query = rootRef.collection("articles").whereEqualTo("language", "en-US");
    query.get().addOnCompleteListener(/* ... */);
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...