我已经在一个项目上工作了很长一段时间,我一直在使用Firebase。我已经实现了应用程序所需的所有Firebase功能。但我唯一的困惑是,FCM。
基本上,我有两个应用程序链接到Firebase项目。一个是消费者应用程序,另一个是管理员应用程序。现在,我正试图通知管理员何时有新订单到达,或何时有用户想与他们聊天。我已经成功地通过消费者应用程序使用node js和Firebase功能通知用户,但我无法通知管理员。这两个应用程序都有不同的软件包名称。但是,无论何时,一个应该通知管理员的触发器发生,它都会将通知发送给消费者应用程序而不是管理员应用程序。
我已经研究了很长一段时间,我唯一能收集到的是,我应该使用主题。但是我想知道,如果我使用主题,它是否仍然会将通知发送到消费者应用程序。因此,我需要询问是否可以使用node.js.向特定的包名称发送FCM通知,如果不可能,我如何实际实现它。提前多谢了
编辑1:这是我的索引。js代码:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendNotification = functions.database.ref('/notifications/{user_id}/{notification_id}').onWrite(event => {
const user_id = event.params.user_id;
const notification = event.params.notification_id;
if(!event.data.val()){
return console.log('A Notification has been deleted from Firebase');
}
console.log('The User ID is : ', user_id);
const fromUser = admin.database().ref(`/notifications/${user_id}/${notification}`).once('value');
return fromUser.then(fromUserResult => {
const from_user_name = fromUserResult.val().from;
const msg_type = fromUserResult.val().type;
const message = fromUserResult.val().msg;
console.log('Notification from: ', from_user_name);
const deviceToken = admin.database().ref(`/Users/${user_id}`).once('value');
console.log('Created deviceToken');
return deviceToken.then (result => {
const token_id = result.val().device_token;
const order_id = result.val().order_id;
console.log('Token ID: ', token_id);
var payload;
const token_id_aman = "eDYB-...ClU";
if (msg_type == "text") {
payload = {
notification: {
title : `New message from ${from_user_name}`,
body: `${from_user_name}: ${message}`,
icon: "default",
tag: "text",
sound: "default",
click_action: "com.androidsword.techno.miniclip_TARGET_CHAT_NOTIFICATION"
},
data: {
order_id: order_id,
user_id: user_id,
device_token: token_id
}
};
if (from_user_name != "Admin") {
payload = {
notification: {
title : `New message from ${from_user_name}`,
body: `${from_user_name}: ${message}`,
icon: "default",
tag: "text",
sound: "default",
click_action: "com.androidsword.techno.adminminiclip_TARGET_NOTIFICATION"
},
data: {
order_id: `${order_id}`,
user_id:`${user_id}`,
device_token:`${token_id}`
}
};
return admin.messaging().sendToDevice(token_id_aman, payload).then(response => {
console.log('This was a notification feature to Admin');
});
}
}
else if (msg_type == "status_changed") {
payload = {
notification: {
title : `Order Status Changed`,
body: `${message}`,
icon: "default",
tag: "status_changed",
sound: "default",
}
};
}
else if (msg_type == "order") {
payload = {
notification: {
title : `New Order`,
body: `A new order has arrived`,
icon: "default",
tag: "order",
sound: "default",
}
};
return admin.messaging().sendToDevice(token_id_aman, payload).then(response => {
console.log('This was a notification feature to Admin to inform about new order');
});
}
return admin.messaging().sendToDevice(token_id, payload).then(response => {
console.log('This was a notification feature');
});
});
});
});
您不能发送到某个包名称。您只能发送到主题
或特定的设备id
。
我想从服务器端向iOS应用程序发送通知。我在服务器端使用PHP和FCM发送通知。我有firebase项目的服务器密钥。 我将以下内容发送给FCM 但我希望在不使用“to”子句的情况下全局发送通知。需要帮助吗
我编写了一个RESTAPI。NET Core现在需要创建一个推送通知到Firebase Cloud Messaging(FCM)。对于测试,我使用Firebase控制台,但我需要通过编程来完成。我已经通过谷歌浏览了Firebase的文档和一些例子,但我更困惑了。 我认为可以通过常规创建消息,但有人可以发布一个简单的工作示例以便我可以拿起它吗?或者也许,我的理解完全错误?
我正在开发ionic应用程序,需要使用FCM发送推送通知。我只想测试两个设备的推送通知。因为我已经有了这两个设备的令牌。 有没有办法使用angularjs向FCM发送RESTAPI POST请求,以向设备发送推送通知?
我在android应用程序中使用nodeJS和mongodb作为后端服务,并使用FCM向用户发送推送通知。为了实现这一点,我在MongoDB上保存了firebase注册令牌。 我想在相应的用户在MongoDb服务器上添加数据时向他们发送推送通知。 这是我在下面添加数据库数据的代码。 现在,一旦数据添加到数据库中,我想向用户发送通知。有人请让我知道如何才能实现所需的任务。任何帮助都将不胜感激。 谢谢
我正在rails 5中编写一个Api Rest,使用gem'fcm'发送通知。我已经在android应用程序中配置了firebase,我可以从firebase控制台成功发送通知,但从rails api我无法在设备中接收通知,这是我的代码: 这是我的rails控制器: 我从邮递员执行这是执行控制器的路线: http://localhost:3000/acciones/enviar?here 将设备令
我对通过FCM实现云消息感到困惑。要向iOS设备发送远程(推送)通知,APN需要iOS设备令牌。但是,Firebase应用程序不与APNs接口,它与FCM接口,FCM与APNs接口。但是通过FCM向任何客户端发送推送通知(或消息)需要FCM令牌。这是否意味着Firebase应用程序向iOS设备发送推送通知时不需要iOS设备令牌?