0

を(クラウド機能を)データを盗んことができない、これは私のコードですiは、データベースの値のイベントをリッスンするfirebaseクラウド機能を使用していfirebaseデータベースから

var functions = require('firebase-functions'); 
var firebase = require('firebase-admin'); 

var serviceAccount = require("./serviceAccountKey.json"); 

firebase.initializeApp({ 
    credential : firebase.credential.cert(serviceAccount), 
    databaseURL: "https://*******.firebaseio.com" 
}); 

exports.notifications = functions.database.ref('/chat/{senderID}/{destinationID}/messages/{pushID}') 
    .onWrite(event => {   
     var eventSnapshot = event.data;   
     var sender = eventSnapshot.child('sender').val(); 
     var message = eventSnapshot.child('message').val(); 
     var destination = eventSnapshot.child('destination').val();   
     if (event.params.senderID === sender) 
      sendMessage(message,sender,destination);  
    } 
); 

function sendMessage(message, sender, destination) { 

    var senderUser = firebase.database().ref('users/'+sender+'/name'); 
    var tokenUser = firebase.database().ref('fcm/'+destination+'/token'); 
     tokenUser.once('value').then(function(tokenSnapshot) { 
      var token = tokenSnapshot.val(); 
         console.log(token);       

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

onWrite機能が正常に実行しますが、tokenUser.once()は実行されません。

+0

これは本当ですか? 'event.params.senderID === sender'です。あなたはそれを実行したとき、彼らは出力ので、我々は、少なくとも何が起こっているのかを知ることができるものとそこにいくつかのログステートメントを置きます。 – Ced

+0

sendMessage関数が実行されています。私はwuthログをテストしました。問題はデータ検索機能にあります。 –

+0

'fcm/'+ destination +'/token'でDBに何かがありますか? – Ced

答えて

0

多分あなたはtokenUser.once('value')を使用して試してみて、機能を渡し、直接tokenSnapshotを得ることはありません場合は、このような何か:

tokenUser.once('value').then(tokenSnapshot => { 
     var token = tokenSnapshot.val(); 
     console.log(token);       

});  

あなたがコールバックでtokenUser.once()を使用する場合は、関数を渡すことができます。

tokenUser.once('value', function(tokenSnapshot) { 
     var token = tokenSnapshot.val(); 
        console.log(token);       

}, function (errorObject) { 
    console.log("The read failed: " + errorObject.code); 
}); 
関連する問題