Mam stół macierzysty, który jest users i ma 3 dzieci w nim. Czy mogę uzyskać dostęp do danych dziecka, przechodząc w UID? Oto moja struktura użytkownika

enter image description here

To, czego próbowałem

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

Dostaję wartość null za każdym razem. Chcę tylko złapać jaki typ użytkownika podczas logowania, dzięki czemu mogę wyświetlić odpowiednie UI dla każdego użytkownika. Jestem tylko nowy do Forbase.

0
Vince 3 sierpień 2020, 17:59

1 odpowiedź

Najlepsza odpowiedź

Twoja struktura bazy danych nie zezwala na rodzaj zapytania, który próbujesz wykonać. Możesz tylko filtrować węzły dziecka na jednym poziomie głęboko z węzła głównego zapytania. Węzeł roota tutaj jest "Użytkownicy", ale rzeczywiste dane użytkownika to dwa poziomy głęboko pod nim pod nim.

Jeśli chcesz znaleźć typ użytkownika, biorąc pod uwagę tylko UI, potrzebujesz konstrukcji, która umieszcza wszystkie użytkowników pod tym samym węzłem korzenia:

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

Teraz możesz bardzo łatwo zapytać, aby uda, aby dowiedzieć się, jaki jest typ

firebase.database().ref().child('users').child(uid).once('value', ...)
1
Doug Stevenson 3 sierpień 2020, 15:11