Как фильтровать данные из базы данных Firebase в реальном времени со сложными узлами - PullRequest
0 голосов
/ 04 июня 2019

Теперь я пытаюсь найти конкретный идентификатор пользователя с помощью поиска по "phoneNumber", но его phoneNumber в конкретном узле, так что трудно связаться, или я не знаю, как я могу его найти.Я хочу получить снимок этого информационного узла.

Структура базы данных

enter image description here

Я пытаюсь выполнить поиск по запросу:

     Query q=FirebaseDatabase.getInstance().getReference("Users")
                    .orderByChild("phoneNumber").equalTo("8@gmail.com");
    ```
    and also tried this one 

    ``` 
    Query q=FirebaseDatabase.getInstance().getReference("Info")
                    .orderByChild("phoneNumber").equalTo("8@gmail.com");

Но не сработало также: (

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

Прежде всего, вам нужно сделать указатель в правилах вашей консоли firbase, как это

{
  /* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */
  "rules": {
     ".read" : true,
    ".write" : false,
    "admin": {
        ".indexOn": "phone"
    }
  }

}

, а затем записать в свой файл, где вы пытаетесь получить данные по номеру телефона

* 1005.*
0 голосов
/ 04 июня 2019

Ни один из этих запросов не будет работать, поскольку в первом запросе у вас отсутствует дочерний элемент Info, а во втором - дочерний элемент Users. Чтобы решить эту проблему, используйте следующий запрос:

Query q = FirebaseDatabase.getInstance().getReference()
    .child("Users")
    .orderByChild("Info/phoneNumber")
    .equalTo("8@gmail.com");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...