Получить только 1 набор данных из многих наборов данных в Firebase

Я хотел бы получить 1 набор данных из, например, 3 наборов данных в Firebase. Для этого я использую Firebase RESTful api.

Я пробовал использовать параметры, но продолжал получать все 3 набора данных вместо 1.

https://mydatabase.firebaseio.com/user.json?Name=Alan

Вот так мои данные выглядят в JSon

{
     "1234567": {
          "Name": "Alan",
          "Department": "Retail Team"
     },
     "7894563": {
          "Name": "Joe",
          "Department": "Sales Team"
     },
     "9876543": {
          "Name": "Tammy",
          "Department": "Customer Service"
     }
}

Это объясняется в документы о фильтрации.

André Kool 05.04.2018 13:35

@ AndréKool Я прочитал этот документ, я попробовал простой (с примером, показанным в области вопросов). Я пробовал с параметром Name, но это не сработало

Arane 05.04.2018 13:37

Без обид, но похоже, что вы не пробовали. Пример в вашем вопросе не включает orderBy и equalTo, как показано в документации.

André Kool 05.04.2018 13:41

@ AndréKool Без обид, однако, фильтрующая часть - это когда мне нужно, чтобы она была в определенном порядке, например Height, как указано в этом примере документа. Но на данный момент мне просто нужно получить Name. Остальная часть документа говорит о сложной фильтрации, которая мне пока не понадобится.

Arane 05.04.2018 13:47

Я думаю, вы неправильно это прочитали, но не будем это обсуждать. Вы можете попробовать это: https://mydatabase.firebaseio.com/user.json?orderBy = "Name"&e‌​qualTo = "Alan"?

André Kool 05.04.2018 13:57

@ AndréKool Мои извинения, если я совершу ошибку, я относительно новичок в NoSQL и Firebase ... В любом случае, я попробовал то, что вы упомянули, и у меня возникла ошибка на "Index not defined, add \".indexOn\": \"Name\", for path \"/user\", to the rules"

Arane 05.04.2018 14:06

@ AndréKool Ошибка уже решена путем добавления правил в мою базу данных firebase.

Arane 05.04.2018 14:11

Так он работает сейчас? Если это так, я напишу это как ответ, чтобы другие люди также могли извлечь из этого пользу.

André Kool 05.04.2018 14:19

@ AndréKool Да, пожалуйста, также добавьте решение с правилами.

Arane 05.04.2018 14:25
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
9
33
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы хотите фильтровать данные с помощью REST api, вам нужно добавить orderBy в свои параметры, чтобы указать, по какому полю вы хотите фильтровать. (На самом деле он ничего не делает для заказа на стороне клиента) И в этом случае вы должны объединить его с equalTo, как указано в документы. Результат будет такой:

https://mydatabase.firebaseio.com/user.json?orderBy = "Name"&equalTo = "Alan"

Чтобы это работало, вам также необходимо указать добавить индекс в правилах вашей базы данных, например:

{
  "rules": {
    "user": {
      ".indexOn": ["Name"]
    }
  }
}

Другие вопросы по теме