Получение дочернего значения Firebase в Javascript - PullRequest
0 голосов
/ 30 мая 2020
function sontinue() {
    var user = firebase.auth().currentUser;
    var uid = user.uid; 

    var adaRef = firebase.database().ref("User/" + uid);
    if (adaRef.orderByChild("Role").equalTo("admin")) {
        location.href = "DB.html";
    } else {
        location.href = "index.html";
    }

}

Я хотел бы связать свою учетную запись "admin" с DB. html и "user" аккаунт с index . html но я думаю, что мне всегда не удавалось получить дочернее значение.

This is my firebase database

1 Ответ

0 голосов
/ 31 мая 2020

Вы не получаете данные с сервера. Помните, что вам нужно вызвать .once ('value'), чтобы получить ваш запрос, а затем выполнить итерацию по оставшемуся коду в зависимости от того, имеет ли их значение admin или user. В Документах Firebase есть более подробное описание Я изменил ваш код и поместил его ниже

  function sontinue() {
            var user = firebase.auth().currentUser;
            var uid = user.uid; 

            var adaRef = firebase.database().ref("User/" + uid).orderByChild("Role");
            //you now need to retrieve the data

            return adaRef.once('value').then((snapshot)=>{
                return snapshot.forEach(snapshot=>{
                if (snapshot.child("Role").val()==="admin") {
                location.href = "DB.html";
                 } else {
                location.href = "index.html";
                }
                return console.log("added");
                })

            })


        }

Если бы вы просто хотели узнать, кто был администратором типа пользователя ... я бы используйте это ниже ... намного эффективнее.

   function sontinue() {
        var user = firebase.auth().currentUser;
        var uid = user.uid; 

        var adaRef = firebase.database().ref("User/" + uid).orderByChild("Role").equalTo("admin");
        //you now need to retrieve the data

        return adaRef.once('value').then((snapshot)=>{
            //you now have all the users that are just admins
            return snapshot.forEach(snapshot=>{
            location.href = "DB.html";
            return console.log("added");
            })

        })


    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...