2017-09-29 4 views
0

ノードjsサーバーからfirebaseデータベースからデータを取得するプログラムを作成しようとしました。Nodejs Firebaseがデータベースを参照しても値がチェックされ続ける

function FCM() 
{ 
    var payload = { 
     data: { 
      //Some data 
     } 
    }; 

    var db = admin.database(); 
    var ref = db.ref("PATH_TO_DATABASE"); 

    ref.on("value", function(snapshot) { 
     registrationToken = REGISTRATION TOKEN 

    admin.messaging().sendToDevice(registrationToken, payload) 
     .then(function(response) { 
     console.log("Successfully sent message:", response); 
     }) 
     .catch(function(error) { 
     console.log("Error sending message:", error); 
     }); 


    }, function (errorObject) { 
     console.log("The read failed: " + errorObject.code); 
    }); 
} 

しかし、この機能が完了しますとき、サーバは大丈夫ですが、問題は、どのようなデータがPATH_TO_DATABASEから削除されるとき、それはエラーを与えるということであるいつものように実行し続ける:今すぐ

TypeError: Cannot convert undefined or null to object 

I firebaseがそのパスへの値をチェックし続けることを望んではいけません。私はただそのことを解放したい。だから私はそれをどのようにすることができますか?

答えて

1

ref.on("value")は、データが削除されたときなど、その値が変更されるたびにトリガーします。代わりに

ref.once("value", function(snapshot)

を使用するとadmin.messaging().sendToDevice(registrationToken, payload)は、再度トリガされません。