Firebase получает данные на основе ключа от родителя - PullRequest
0 голосов
/ 03 августа 2020

У меня есть родительская таблица users, в которой есть 3 дочерних элемента. Могу ли я получить доступ к данным ребенка, просто передав uid? Вот моя структура пользователей

введите описание изображения здесь

Я пробовал

    firebase.database().ref().child('users').equalTo(localStorage.getItem('uid')).once('value',snap =>{
      console.log(snap.val())
    })

Я каждый раз получаю значение null. Я просто хочу понять, какой тип пользователя входит в систему, чтобы я мог отображать соответствующий пользовательский интерфейс для каждого пользователя. Я новичок в firebase.

1 Ответ

1 голос
/ 03 августа 2020

Структура вашей базы данных не допускает тип запроса, который вы пытаетесь выполнить. Вы можете фильтровать дочерние узлы только на одном уровне от узла root вашего запроса. Узел root здесь - это «пользователи», но ваши фактические пользовательские данные находятся на двух уровнях ниже него.

Если вы хотите найти тип пользователя, имеющий только UID, вам понадобится структура, которая помещает все пользователи под одним и тем же root узлом:

- users
   - {uid}
       - type: "doctors" | "patients" | "secretary"
       - email: ...
       - name: ...

Теперь вы можете очень легко запросить здесь UID, чтобы узнать, что это за тип

firebase.database().ref().child('users').child(uid).once('value', ...)
...