Как правильно добавить правило .indexOn в базу данных реального времени firebase? - PullRequest
1 голос
/ 25 марта 2020

Я читал о важности правила .indexOn как для производительности, так и для цены (сокращая общее количество загруженных байтов), и мне интересно, как правильно его реализовать.

В моем случае У меня есть база данных реального времени Firebase по этому пути Cosmetics/Outfits, поэтому я должен объявить правило следующим образом:

"Cosmetics": {
"Outfits": {
  ".indexOn": ["rarity"]
}}

или примерно так:

"Outfits": {
  ".indexOn": ["rarity"]
}

В обоих случаях я не получил никаких ошибок.

1 Ответ

1 голос
/ 25 марта 2020

Предполагая, что схема вашей базы данных выглядит следующим образом:

Firebase-root
   |
   --- Cosmetics
         |
         --- Outfits
               |
               --- outfitIdOne
               |     |
               |     --- rarity: "rare"
               |
               --- outfitIdTwo
                     |
                     --- rarity: "rare"

Таким образом, каждый Outfit объект существует в узле Outfits, правила должны выглядеть следующим образом:

{
  "rules": {
    "Cosmetics": {
      "Outfits": {
        ".indexOn": "rarity"
      }
    }
  }
}

Если вы не создадите правильный индекс, сервер отправит все данные клиенту, место, где происходит фильтрация. Для получения дополнительной информации см. Официальную документацию относительно данных индексации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...