2016-03-21 10 views
0

私はangle/ionic 2でfirebaseを使用していますが、値が存在するかどうかを確認し、firebaseがnullを返さない場合は作成する必要があります。状態はdocsであり、そのために私のチェックは実行されません。firebaseデータが存在しないときに値を返さない

subscribeToOffer(uid, offerID) { 
    var path = 'users/' + uid + '/offers/' + offerID; 

    this.rootRef.child(path).on('value', subscribed => { 
     if (subscribed.val() !== null) { 
      console.log('subscribed'); 
     } else { 
      console.log('not subscribed'); 
     } 
    }); 
} 
+0

nullを返していない場合は何を返しますか?パスが正しいと確信していますか?たぶんあなたの質問に使用しているデータのサンプルを追加してください(テキストではなく、画像でお願いします) –

+0

何も返されず、何も起こりません。オファーが存在するときはそれが実行されますが、何もしないときは、else文を実行するために何かが必要なので、パスは正しいです。 – Lindstrom

+0

これを試しましたか:https://www.firebase.com/docs/web/api/datasnapshot/exists.html –

答えて

0

は、ここで私は、他の場合にはfalseを真のオファーIDが存在する場合を返しますあなたのための簡単な関数を記述しています。

subscribeToOffer(userId,offerId){ 
     var userRef = new Firebase(FBURL+'users'); 
     var userOfferRef = userRef.child(userId).child("offers"); 
     return userOfferRef.on("value", function(snap) { 
      var offerIds = snap.val(); 
      return !!offerIds.hasOwnProperty(offerId); 
     }); 
    }; 
関連する問題