【发布时间】:2018-05-31 08:41:24
【问题描述】:
我正在开发一个使用 firebase 进行消息传递的应用。当群组中有新消息时,我想使用函数发送推送通知。不幸的是,我对 node.js 的经验为零,因为我没有 CS 背景并且只有几个月的编码经验。
我试图从我能找到的教程中拼凑起来,但我什至不确定我是否朝着正确的方向前进。
这适用于 iOS 应用程序,如果有任何区别的话
这是我的火力基地结构
这是我目前所拥有的
let functions = require('firebase-functions');
let admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendPush = functions.database.onWrite(event => {
let projectStateChanged = false;
let projectCreated = false;
let projectData = event.data.val();
if (!event.data.previous.exists()) {
projectCreated = true;
}
if (!projectCreated && event.data.changed()) {
projectStateChanged = true;
}
var valueObject = event.data.val();
return loadUsers().then(users => {
let tokens = [];
for (let user of users) {
tokens.push(user.pushToken);
}
let payload = {
notification: {
title: valueObject.RealName,
body: valueObject.MessageBody,
sound: 'default',
}
};
return admin.messaging().sendToDevice(tokens, payload);
});
});
function loadUsers() {
let dbRef = event.data.ref.parent.parent.ref('/GroupMembers/');
let defer = new Promise((resolve, reject) => {
dbRef.once('value', (snap) => {
let data = snap.val();
let users = [];
for (var property in data) {
users.push(data[property]);
}
resolve(users);
}, (err) => {
reject(err);
});
});
return defer;
}
【问题讨论】:
标签: ios node.js firebase firebase-realtime-database firebase-cloud-messaging