0

私は様々なユーザーによって投稿された情報を含むペーパーカードのリストを持っています。これは、ユーザーがWebアプリケーションにアクセスしたときに発生します。ユーザー資格情報に関する特定のUIを有効にします。

  1. 彼らは彼らの項目
  2. 自分のメールアドレスがfirebase.authを使用して照会され
  3. ()。currentUser.emailについての情報を投稿し、一緒にデータベースに格納され
  4. 自分のメールアドレスとパスワードを使用してログイン彼らが投稿した情報

だから、私は何をしたいことは、現在ログインしているユーザーの電子メールを取得し、電子メールは、キーの子ノードのものと同じであり、彼らが同じであれば、私は有効にするかどうかを確認していますポストを削除するために使用できるボタンです。

次のコードを試しましたが、動作しません。

EDITED CODE

uploadsRef.on('value', function(snap) { 
     var data = _.map(snap.val(), function (item, key) { 
     item.key = key; 
     var mail = item.email; 
     console.log(mail); 
     firebase.auth().onAuthStateChanged(firebaseUser => { 
      if(firebaseUser){ 
      var user = firebase.auth().currentUser; 
      var usr_mail = user.email; 
      console.log(usr_mail); 
      if(mail == usr_mail){ 
       item.hidden = 'disp'; 
      } 
      } 
      else{ 
      if(mail != usr_mail){ 
       item.hidden = 'hidden'; 
      } 
      } 
     }); 

     return item; 
     }); 
     myFeed.splice.apply(myFeed, ['datas', 0, myFeed.length].concat(data)); 
    }); 
+0

はルックス: '場合(メール==ユーザーを) 'は' if(mail == usr_mail) 'でなければなりません。 –

+0

@FrankvanPuffelenタイポが残念ですが、まだ動作しません... –

+0

Stack Overflowは、アプリケーションをデバッグするための非常に効率的なメカニズムではありません。問題を再現するjsfiddle/jsbinを設定できますか? –

答えて

0

私はあなたがthisは、コンテキストの外でていることはほぼ確実です。試してくださいmyFeed.$.sold.classList.remove('hide')

また、classListを手動で使用せずに、クラスに要素をバインドすることもできます。あなたはここで間違った変数を比較しているようなので、今、あなたはすべての非所有者のために「隠れ」にitem.hiddenセットを持っていることを

var myFeed = this; 
var uploadsRef = firebase.database().ref('cattle/data'); 

uploadsRef.on('value', function(snap) { 
    var data = _.map(snap.val(), function (item, key) { 
    item.key = key; 
    var mail = key.email; 
    var user = firebase.auth().currentUser; 
    var usr_mail = user.email; 
    if(mail !== usr_mail){ 
     item.hidden = 'hidden'; 
    } 
    return item; 
    }); 
    myFeed.splice.apply(myFeed, ['datas', 0, myFeed.length].concat(data)); 
}); 

...

<style> 
    .hidden {display: none;} 
</style> 
<div class$="[[item.hidden]]"></div> 
+0

ありがとうございますが、まだ動作していない、私はif(mail!= usr_mail)条件内に配置されているコードが実行されているかどうかを確認しようとしました現在のユーザーの電子メールが投稿を投稿した人の電子メールと一致するかどうかを確認することは問題ありません。主な問題は、所有者ではなく非所有者であればボタンを非表示にすることです。オーナーであればdispを設定して(要素を表示する)、デフォルトでは非所有者であればボタンを非表示にしていましたまだ動作していない...これは私のプロジェクトのパズルの最後の部分です、plsは私を助ける... –

関連する問題