Запрос Firebase скачать всю базу данных.Зачем? - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь загрузить и показать только конкретные данные из базы данных в реальном времени.У меня есть следующий код:

getUserPlatformIos() {
    this.dataRef = this.afDatabase.list('data/users', ref => ref.orderByChild('meta/platform').equalTo('ios'));
      this.data = this.dataRef.snapshotChanges().map(changes => {
        return changes.map(c => ({ key: c.payload.key, ...c.payload.val() }));
      });
      return this.data;
  }

Моя структура базы данных firebase enter image description here

Правила Firebase enter image description here

Почему FireBase загружает всю базу данных, если я запрашиваю раньше?Это приводит к очень длительному времени загрузки и большому количеству загруженных данных ....

1 Ответ

0 голосов
/ 31 декабря 2018

Индексы должны быть определены в том месте, где вы выполняете запрос.Поскольку вы запускаете запрос для data/users, вам нужно определить свой индекс:

"users": {
  ".indexOn": "meta/platform"
}

Это определяет индекс для users, который имеет значение свойства meta/platform каждого пользователя..

Обратите внимание, что в журнале вашего приложения должно отображаться сообщение об ошибке именно с этой информацией.Я настоятельно рекомендую проверять вывод журнала, если что-то не работает так, как вы ожидаете.

...