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()
は実行されません。
これは本当ですか? 'event.params.senderID === sender'です。あなたはそれを実行したとき、彼らは出力ので、我々は、少なくとも何が起こっているのかを知ることができるものとそこにいくつかのログステートメントを置きます。 – Ced
sendMessage関数が実行されています。私はwuthログをテストしました。問題はデータ検索機能にあります。 –
'fcm/'+ destination +'/token'でDBに何かがありますか? – Ced