2017-01-03 23 views
2

これを動作させるには複数の異なる方法を試してきました。目的は、ユーザーが前に見た場合に表示されないウェルカムボックスを持つことです。私のデータベースのアクティブフィールドに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)Loading .... 2)ようこそ3)はありませんが、ロードを完了しました。このように、歓迎の瞬間表示は見られません。 – bhantol

答えて

0

オブジェクトのプロパティ - childSnapshot.val()。activeを読み取る必要があります。

あなたはそれを後ろ向きにしています。ユーザーがデータベースにいない場合は、ウェルカムカードを表示する必要があります。ユーザーがデータベースにいる場合、既にアプリとやりとりしたことがあり、ウェルカムカードが表示されている可能性があります。

ウェルカムカードは、CSS display: noneで非表示にして、ページの読み込み時に点滅したり表示したりしないでください。

私の意見では、1または0ではなく、ブール値のネイティブtrueまたはfalseを使用してください(単語を引用符で囲まないでください)。スクリプトの先頭にvar showWelcomeCard = falseを初期化します。

ウェルカムカードを表示することを決定したら、それを表示してください。その逆ではありません。

最後に、ウェルカム/スタートカードをもう一度見たくないと仮定しないでください。選択肢を提供してください。 「これをもう一度表示しない」というチェックボックス。したがって、プロパティをactiveからshowWelcomeCardに変更してください。

+0

ありがとうございます!私は、ユーザーアカウントが管理者によって作成されたときに表示名とパスウェイを提供できるように、ウェルカムボックスが初めてログインするときに表示されることを述べておきます。ユーザーは後で設定でこれを編集できます。しかし、これは、ユーザーがウェルカムボックスを見る前に既にデータベースに入っていることを意味しますか? – imconnor

関連する問題