Firebase не определен индекс даже при правильном использовании .indexOn? - PullRequest
0 голосов
/ 27 октября 2019

Я получаю сообщение об ошибке:

ПРЕДУПРЕЖДЕНИЕ О ПОЖАРЕ: использование неопределенного индекса. Ваши данные будут загружены и отфильтрованы на клиенте. Подумайте о том, чтобы добавить «.indexOn»: «author» в / questions к своим правилам безопасности для повышения производительности.

мои правила для базы данных:

"questions": {
      ".read": true,
      ".write": true,
        ".indexOn": ["category,author"]
    },

Мои данные для базы данных:

 "questions" : {
    "-Ls1LfayKF9TUg20ByPE" : {
      "question" : "1",
      "timestamp" : 1571997530706,
      "author" : "9jNkvzr0chgPi0SC6rXMlVWdOF12"
    },
    "-Ls1Lj_OG4lo11r3WQzF" : {
      "question" : "2",
      "timestamp" : 1571997546988,
      "author" : "9jNkvzr0chgPi0SC6rXMlVWdOF12"
    },

Мой код:

const ref = FirebaseRef.child('questions')
ref.orderByChild('author').equalTo(UID).limitToLast(this.state.limit)
      .on("child_added", snapshot => {
       console.log("FireB ",snapshot)
    var items = [];
    snapshot.forEach((child) => {
      items.push({
        key: child.key,
        ...child.val()
      });
    });

1 Ответ

0 голосов
/ 27 октября 2019

.indexOn может быть массивом строковых значений. Теперь у вас есть только одно строковое значение.

Итак, замените:

".indexOn": ["category,author"]

на:

".indexOn": ["category", "author"]
...