Какой правильный синтаксис считывает логическое значение из firebase? - PullRequest
0 голосов
/ 10 марта 2020

Я очень новичок в firebase, я не знаю, какой синтаксис использовать. Я создаю игру, в которой есть таймер, таймер запустится, если моя игра прочитает в базе данных, что start_gameRef равно true. Весь таймер полностью работает, моя главная проблема - это чтение логического значения в firebase, которое является триггером для запуска игры.

моя структура firebase:

enter image description here

Я знаю, что что-то не так в этом коде ниже

var start_gameRef = firebase.database().ref().child("switch");

Это вся функция ниже

function startGame(){
    var timeleft = 60;
    var start_gameRef = firebase.database().ref().child("switch");
    if (start_gameRef == true) {    
        var downloadTimer = setInterval(function function1(){
            document.getElementById("countdown").innerHTML = timeleft + 
            "&nbsp"+"seconds remaining";
            document.getElementById("gameStart").disabled = true;

            timeleft -= 1;
            if(timeleft <= 0){
                clearInterval(downloadTimer);
                document.getElementById("gameStart").disabled = true;
                document.getElementById("countdown").innerHTML = "Time is up!"
                declareWinner();
            }
        }, 1000);
    } 
}

1 Ответ

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

Вам необходимо указать полный путь к узлу, который вы хотите прочитать. Так как switch находится под игроками, оно будет как минимум players/switch. Если players находится непосредственно под root вашей базы данных, то есть:

var start_gameRef = firebase.database().ref().child("playes/switch");

или немного короче с тем же результатом:

var start_gameRef = firebase.database().ref("playes/switch");

Но это не Пока что ничего не читал из базы данных, он просто устанавливает ссылку на эти данные в облаке. Чтобы фактически прочитать данные, вам нужно подключить слушателя с помощью on() или once():

var start_gameRef = firebase.database().ref("playes/switch");
start_gameRef.once("value").then(function(snapshot) {
    var value = snapshot.val();
    if (value == true) {    
        ...

Обратите внимание, что чтение из базы данных довольно хорошо описано в документации Firebase и во многих уроках, поэтому я настоятельно рекомендую изучать их, когда вы застряли.

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