0

を機能:はFirebaseクラウドを利用してfirebaseからのプッシュ通知を送信し、私は、以下の方法でプッシュ通知を送信しています

exports.sendPushNotification = 
functions.database.ref('/chat_rooms/{id}').onWrite(event => { 

console.log(event); 
const original = event.data.val(); 
const reciverId = original['receiverID']; 
const text = original['text']; 
const senderName = original['senderName']; 
var path = 'fcmToken/' + reciverId; 

const payload = { 
notification: { 

title :senderName, 
body: text, 
badge:'7', 
sound:'default', 

    } 
}; 
return admin.database().ref(path).once('value').then(allToken => { 
    if (allToken.val()){ 
     var firebaseReceiverID = allToken.val(); 
     var firebaseToken = firebaseReceiverID['firebaseToken']; 

    return admin.messaging().sendToDevice(firebaseToken,payload).then(response => { 
    }); 
     }; 
    }); 
}); 

マイfirebaseデータベース構造は、このようなenter image description hereです: 任意の子が下に追加された場合にプッシュを送信する方法チャットルーム(パスを検出する)

+0

は、現在のプッシュ通知が送信されて?あなたはここに何を得ていますか?console.log(event); '? –

+0

新しいchat_roomsが追加されたときに実行されます。それ以外の場合は実行されません。msgが追加されたときに実行します。chatroom –

+0

はい、問題は何ですか?それはonWriteの目的は、その場所に何かが追加されたときにトリガされるということです。データベース内のmsgはどこですか? –

答えて

2

onWriteはデータベーストリガですので、指定した場所にデータを追加するたびにトリガされます。あなたは、データベースからPerticularChatRoomidを取得することができます

export.sendPushNotification=functions.database.ref('/chat_rooms/{PerticularChatRoomid}/‌​‌​{id}').onWrite(eve‌​nt => { 

console.log(event); 
const chatroomid=event.params.PerticularChatRoomid; 

} 

この方法:

は今、あなたは、あなたがこれを行うことができ、IDを取得したい場合。

は、ワイルドカード {id}の値は、常にこのリンクに event.params

詳細情報を使用して取得するには:https://firebase.google.com/docs/functions/database-events

関連する問題