Реагируйте на Native Firebase, как получать данные из массива таблиц с указанным пользователем c - PullRequest
0 голосов
/ 31 марта 2020

Db Scheme

Я беру "userId" из таблицы преподавателя (указанного пользователя c), и на основе этого userId таблица создается в "tutorCopy" и те пользователи, которые принимают услуги «john@john.com», сохраняют свои userId и useremail. Теперь, когда john@john.com входит в систему, я хочу показать количество адресов электронной почты / лиц, назначенных ему. Это то, что я сделал до сих пор, но я не могу использовать useremail:

 componentWillMount(){
     var refx =firebase.database().ref("tutorCopy")
    refx.orderByChild("table").on("value", function(snapshot) {
        snapshot.forEach(function(data) {
            this.setState({ markers: Object.values(snapshot.val()) })
          //alert(data.useremail)
        });
      });
    }

Также я хочу показать useremail только тех, чьи tutorId совпадают из таблицы tutor в tutorCopy.

1 Ответ

1 голос
/ 31 марта 2020

Попробуйте выполнить следующее:

 componentWillMount(){
     var refx =firebase.database().ref("tutorCopy")
    refx.on("value", function(snapshot) {
        snapshot.forEach((childSnapshot) => {
          childSnapshot.forEach((childSnap) =>{
           console.log(childSnap.val());
          });
        });
      });
    }

Вам необходимо выполнить итерацию дважды, чтобы получить доступ к useremail, в этом случае orderByChild("table") также не будет работать, поскольку вы не можете получить доступ к узлу table, так как вам нужно go на один узел дальше, пример:

var refx =firebase.database().ref("tutorCopy")
refx.child(userId).orderByChild("table")
...