我完全不熟悉Firebase云功能(2天曝光)。当Firebase数据库检测到添加了新数据时,我尝试向我的应用程序的所有用户发送通知。以下是我到目前为止的情况:
exports.sendNotification = functions.database.ref("/uploads/{pushId}").onCreate(event => {
const snapshot = event.data;
var str = snapshot.child("name").val();
console.log(str);
if (snapshot.previous.val()) {
return 0;
}
if (snapshot.val().name != "ADMIN") {
return 0;
}
const text = snapshot.val().text;
const payload = {
notification: {
title: snapshot.name,
body: ""
}
}
//return admin.messaging().sendToDevice(tokens, payload);
});
我知道代码现在处于混乱状态,这是由于几个来自不同教程网站的复制和测试。我可以成功地从console.log获得数据的名称,但无法向所有用户发送通知。
我知道大多数使用令牌和设备ID。但是有没有更简单的方法发送给我的每一个用户呢?我是否需要为我的应用程序添加java代码才能使此通知生效?
编辑1:根据Peter的建议,我更新了我的功能:
exports.sendNotification = functions.database.ref("/uploads/{pushId}").onCreate(event => {
const snapshot = event.data;
var str = snapshot.child("name").val();
console.log(str);
if (snapshot.previous.val()) {
console.log("RETURN 1");
return 0;
}
const payload = {
notification: {
title: str,
body: ""
}
}
return admin.messaging().sendToTopic("Users", payload)
.then(function(response){
console.log("Notification sent ", response);
})
.catch(function(error){
console.log("Error sending notification: ", error);
});
});
我还在代码中添加了以下java:
FirebaseMessaging.getInstance().subscribeToTopic("Users");
我现在遇到的问题是,Firebase控制台上显示通知已成功发送,但在我的手机上我没有收到任何信息。在我的案例中必须使用onMessageReceived方法吗?
我注意到的一件事是,每次应用程序启动时都会调用上述语句。这会以任何方式影响结果吗?
我认为最简单的方法是主题
,您可以向所有用户订阅一个主题
,然后向该主题发送通知。您必须将返回声明更改为:
return admin.messaging().sendToTopic("Cat", payload);
因此,现在所有订阅主题的用户都将收到通知。当然,你也可以把话题改成任何你想要的。。
要向用户订阅主题,您只需编写以下内容:
FirebaseMessaging.getInstance().subscribeToTopic("Cat"); //in java code
查看更多信息主题消息
如何使用Firebase向我的应用程序的所有注册用户发送推送通知?我在纪录片中搜索了api,但没有找到任何有用的东西。
我刚开始使用Firebase云消息。我建了一个IOS应用来接收推送通知。应用程序运行良好。我从Firebase控制台发送消息,它们会正确显示。 我的问题是:我可以向所有设备发送一条消息吗(就像我可以在控制台中做的那样)?我是的,怎么会这样? 提前道谢!
我有聊天应用程序我正在使用Firebase firestore数据库,我正在保存最近的消息如下 接收者端:messages->recieverId->recent_messages 这意味着相同的消息将被写入当前用户和接收者用户文档。(同一消息将写入两个不同的文档) 消息内容如下: -接收方 现在我要观察集合,并且只向接收方用户发送通知,有什么方法可以避免向这两个用户发送推送通知吗?
null curl--不安全--header“Authorization:key=AIZASYBidMyAuthKeyisFinel-6NCJXJ-1JUVEM”--header“content-type:application/json”-d“notification:title:note-title.body:note-body}”https://fcm.googleapis.com/fcm/
我想使用Firebase云消息服务向所有使用该应用的用户发送一些消息。我可以使用向单个或多个设备发送数据负载,如下所示: 但是如何向所有用户发送数据有效负载?