书到用时方恨少,事非经过不知难。这篇文章主要讲述使用firebase云消息使用android客户端应用程序生成通知相关的知识,希望能为你提供帮助。
我想用android应用程序推送一些通知。所以我做了一些研究,但我很少迷路。
我可能错了,但我认为我唯一的可能是使用带有HTTP请求的FCM:
POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1Content-Type: application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
{
"message":{
"topic" : "foo-bar",
"notification" : {
"body" : "This is a Firebase Cloud Messaging Topic Message!",
"title" : "FCM Message",
}
}
}
【使用firebase云消息使用android客户端应用程序生成通知】但我看到每个人都使用他们自己的数据库,我不知道为什么他们需要使用它。我不想使用自己的数据库,所以如果你有更好的解决方案,请帮助我。
感谢您的回复
(对不起我的英语不好)
答案使用Firebase Cloud Messaging向设备发送消息需要您指定FCM服务器密钥。它是样本中
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
标题中的值。但这里的一个关键问题是,任何拥有FCM服务器密钥的人都可以无限制地向您应用的所有用户发送消息。如果您将该密钥嵌入到您的应用中,那么有人发现并且使用它向您的用户发送不需要的消息只是时间问题。这就是为什么,顾名思义,FCM服务器密钥只应在受信任的环境中使用(例如您控制的服务器/设备或云功能)。
因此,虽然技术上可以将消息从一个Android设备发送到另一个Android设备,但这样做会使您的应用用户面临您不应该想要的风险。
更多关于以前的好答案和文章的链接:
- This answer from Diego是从事FCM工作的工程师之一。
- 我的blog post describing the above in more details and how to send messages between Android devices securely。
- Firebase documentation example on sending messages securely from Cloud Functions
- 我的一些answer on sending device-to-device messages with FCM。
onUpdate()
触发器。还有onWrite()
,onDelete()
和onCreate
。所有这些触发器都可以在发生此类更改时发送通知。然后我使用Admin SDK获取令牌(如果它是单个用户,我之前已经上传到数据库)或主题(对于群聊,我以小组聊天命名,因此很容易获得)。从这里,我也命名了类型,以便知道是发送给单个用户还是组。这让我有一个监听器来发送通知,而不需要我自己的数据库。全部通过firebase。另外一个事实是,这是在Node.JS中完成的,但是通过Firebase的知识来掌握这个概念相当容易。一些有用的链接:
Getting Started with Cloud Functuons
Realtime Database Triggers
Admin SDK Setup
Admin Database Getting Started, next pages for read and write(remember to use Node.JS)
希望这可以帮助!
推荐阅读
- android在后台处理大图片firebase通知
- android推送通知服务比较
- 推送通知弹出 - Android
- 在几秒钟内向许多iphone / android发送通知
- 推送通知停止在parse.com android项目中工作
- Android通知中来自外部网址的setSmallIcon
- 如何使用离子3中的特定联系人从其他应用程序打开Whatsapp应用程序()
- 当app运行时,如何在android中以编程方式关闭通知()
- Android应用程序是否有可能杀死自己的进程