我想使用云功能向特定用户发送推送通知。
这是我的代码:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendPushNotification = functions.database.ref('/Users/{id}').onWrite(event => {
const payload = {
notification: {
title: 'Test message',
body: 'Hope you are fine',
badge: '1',
sound: 'default',
}
};
return admin.database().ref('fcmToken').once('value').then(allToken => {
if(allToken.val()){
const token = Object.keys(allToken.val());
return admin.messaging().sendToDevice(token, payload).then(response => {
});
}
});
});
但是,如何动态地执行此操作,即我想为特定用户发送推送通知,此代码将通知发送给所有注册的用户。因此,帮助我将静态 id(数据库引用)更改为动态(数据库引用)以及如何在此代码行中传递不同的通知内容:
const payload = {
notification: {
title: 'Test message',
body: 'Hope you are fine',
badge: '1',
sound: 'default',
}
};
有人可以指导我吗?
最佳答案
我动态地实现了它。希望它对某人有帮助。
这是我的代码:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendPushNotification = functions.database.ref('/Users/{id}').onWrite(event => {
var eventSnapshot = event.data;
var particularUser = eventSnapshot.child('City');
if (particularUser.changed()) {
const payload = {
notification: {
title: 'Test message',
body: 'Hope you are fine',
badge: '1',
sound: 'default',
}
};
var getToken = eventSnapshot.child('fcmToken');
const token = Object.keys(getToken.val());
return admin.messaging().sendToDevice(token, payload).then(response => {
});
}
});
如果要更改通知内容,您可以在应用程序端更新后从数据库中获取它。
关于node.js - 如何在云函数中传递动态引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47881283/