我在Ionic 2中开发了一款应用,它使用Firebase根据设备令牌发送推送通知。但是,我希望它向接收者而不是发送者发送推送通知 - 现在,它发送给两者。
我的应用程序的作用:当用户登录时,他会在Firebase中获取设备令牌,用于在收到消息时向他发送推送通知。
我尝试过:我已经遵循了tutorial。
这是index.js
中的node_module
:
var functions = require('firebase-functions');
var admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
var wrotedata;
exports.Pushtrigger = functions.database.ref('/chat/{chatId}/messages/{messageId}').onWrite((event) => {
wrotedata = event.data.val();
admin.database().ref('/pushtokens').orderByChild('uid').once('value').then((alltokens) => {
var rawtokens = alltokens.val();
var tokens = [];
processtokens(rawtokens).then((processedtokens) => {
for (var token of processedtokens) {
if(token!='') {
tokens.push(token.devtoken);
}
}
var payload = {
"notification":{
"title":"From: " + wrotedata.username,
"body":"Message: " + wrotedata.chat_text,
"sound":"default",
},
"data":{
"sendername": wrotedata.username,
"message": wrotedata.chat_text
}
}
return admin.messaging().sendToDevice(tokens, payload).then((response) => {
console.log('Pushed notifications');
}).catch((err) => {
console.log(err);
})
})
})
})
function processtokens(rawtokens) {
var promise = new Promise((resolve, reject) => {
var processedtokens = []
for (var token in rawtokens) {
processedtokens.push(rawtokens[token]);
}
resolve(processedtokens);
})
return promise;
}
tokens.push(token.devtoken);
之前检查令牌的UID是否不是发件人的UID - 我不确定如何实现,但这是我的建议。当'/chat/{chatId}/messages/{messageId}'
中写入新邮件