2017-01-03 3 views
2

Пробовал несколько разных способов заставить это работать. Цель состоит в том, чтобы иметь окно приветствия, которое не появляется, если пользователь видел его раньше. Если поле Active в моей базе данных показывает 1, приветственный div не должен быть видимым.Извлечение данных из Firebase Web

document.onload = function() { 
    var active 
    var user = firebase.auth().currentUser; 
    var uid; 

    if (user != null) { 
    uid = user.uid; 
    } 

    firebase.database().ref("Users/" + uid + '/Active').on("value", function(snapshot) { 
    snapshot.forEach(function(childSnapshot) { 
     var active = childSnapshot.val(); 
     if (active = 1) { 
     document.getElementById("welcome").style.display = "none"; 
     document.getElementById("box").style.display = "none"; 
     document.getElementById("title").style.display = "none"; 
     document.getElementById("text").style.display = "none"; 
     } 
    }); 
    }); 
}; 

enter image description here

Заранее спасибо за любую помощь или совет.

+1

Обратите внимание на один символ '=' в 'if (active = 1)'. Почему бы не 'if (active == 1)'? :) – bhantol

+0

Спасибо, я внес изменения. Хотя что-то еще не работает – imconnor

+1

Вы также можете принять стратегию 3 штатов - 1) Загрузка .... 2) Добро пожаловать 3) Нет Добро пожаловать, но сделана загрузка. Таким образом, мгновенное отображение приветствия не будет видно. – bhantol

ответ

0

Вам необходимо прочитать свойство объекта - childSnapshot.val(). Active.

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

Карточка приветствия должна быть скрыта CSS display: none, поэтому она не мигает или вообще не отображается при загрузке страницы.

Используйте логическое, родное true или false (обратите внимание на кавычки вокруг слова), а не на 1 или 0, на мой взгляд. Инициализируйте var showWelcomeCard = false в верхней части вашего скрипта.

Как только вы определите, что вы должны показать приветственную карточку, покажите ее; А не наоборот.

И, наконец, не предполагайте, что они больше не хотят видеть приветственную/стартовую карту. Предложите им выбор. Флажок «Не показывать это снова». Итак, измените свойство от active до showWelcomeCard.

+0

Спасибо за помощь! Я должен был упомянуть, что первое поле появляется при первом входе в систему, чтобы они могли предоставлять отображаемое имя и путь, поскольку учетная запись пользователя создается администратором. Пользователь может изменить это позже в настройках. Но это означает, что пользователь уже находится в базе данных, прежде чем они увидели окно приветствия? – imconnor

Смежные вопросы