如何在不使用XMPP或任何其他脚本的情况下使用FCM发送设备到设备的通知?

11 浏览
0 Comments

如何在不使用XMPP或任何其他脚本的情况下使用FCM发送设备到设备的通知?

有没有办法通过FCM从一个Android设备向与Firebase数据库连接的其他设备发送上行通知消息。

我知道XMPP服务器可以接收上行消息并将通知发送到其他设备。要使用上行API发送的消息,我需要实现XMPP服务器,但还有其他方法吗???

admin 更改状态以发布 2023年5月22日
0
0 Comments

最终,在尝试自己维护可靠的服务器脚本2个月后,我突然发现了OneSignal。它完全免费,支持iOS、Android、WP和浏览器的设备对设备的推送消息。

希望我不会因为广告垃圾而被标记,但它目前是完全“无后端”的唯一(也是最简单的)方式

此外,它是完全安全的方式。除非知道特殊的操作系统用户id,否则没有人可以发送推送消息,你可以将其存储在由规则保护的Firebase数据库中。

更新:它不能替代Firebase。它只有推送服务,没有其他内容

更新2:Firebase现在有了Functions,例子中使用它发送FCM。你现在不需要任何其他服务器或服务。在官方的示例https://github.com/firebase/functions-samples中了解更多

0
0 Comments

是否有办法通过FCM从一个安卓设备向连接Firebase数据库的其他设备发送上行通知消息?

目前 不可能直接从一个设备发送消息到另一个设备。
(或者至少在不引入巨大的安全漏洞的情况下不可能:详细信息如下)

完整细节:

  1. 向用户设备发送消息是一个相当严重的操作!
    根据载荷,一条消息可以导致垃圾邮件、网络钓鱼、执行内部方法。
  2. 您希望此操作仅由受信任的实体允许,这就是为什么 FCM 发送 API 要求在身份验证头中添加 SERVER-API-KEY
  3. SERVER-API-KEY 添加到您的应用代码中(或以某种其他方式将其传递给应用)不安全。因为 APK 可以被提取、反编译、检查、在模拟器上执行、在调试下执行等。

今天实现此操作的最佳方法:是在两个设备之间添加某种类型的服务器:

[DeviceA] -- please send message to B -->  [SERVER] -- fcmSendAPI --> [DeviceB]

服务器可以是一个简单的 PHP 页面,或者一个更复杂的 XMPP 实现。

Node.js 中的示例可以在这里找到:
使用 Firebase 数据库和云消息传递在设备之间发送通知

0