Firebase Cloud Messaging需要使用服务器吗?

3
我正在开发一个安卓应用程序,想要使用Firebase Cloud Messaging。我打算让树莓派每隔5分钟检查一次网站,并在有变化时发送推送通知。在官方文档中,他们说我需要一个“应用服务器”才能通过Firebase发送消息。
这是否意味着我需要让我的树莓派24/7运行作为服务器,并需要一个静态IP/域名?或者我只需要让我的树莓派通过API(https://fcm.googleapis.com/fcm/send)发送消息,因为我只需要下行消息?
由于我无法在任何线程或文档中找到明确的答案,所以任何帮助和解释都将不胜感激。

1
虽然这不是“必需的”,但强烈建议从服务器发送消息,这样当你拥有服务器时会更容易。你的树莓派可以作为服务器发送消息,因为你的应用程序不需要向服务器发送数据,只对服务器所需信息感兴趣。 - tyczj
但是我不需要树莓派始终在线并具有静态IP /域名吗? - GreenSmurf
如果你的树莓派关机了,并且它发送消息,那么谁会发送呢?因此,是的,如果你的树莓派发送消息,它必须始终处于开启状态。 - tyczj
但是我不需要一直在线,对吧?只有在需要发送消息时在线不就足够了吗? - GreenSmurf
我只是根据你的描述来判断,你说你每5分钟检查一次并在有变化时发送推送。如果你的树莓派关闭了,它就不会检查网站,也不会发送消息。 - tyczj
3个回答

3

如果只有一个设备,你不需要应用程序服务器。如果你的树莓派设备有某种形式的互联网连接,你只需要向Firebase API发送请求即可。

Firebase(谷歌服务器)将通过向所有已注册的设备推送通知来处理其余部分。


那我只需要将服务器密钥保存在树莓派上,Google会自动处理其他的吗?这对主题订阅也适用吗? - GreenSmurf

1
发送下行消息(即发送给设备的消息)需要指定 FCM 服务器密钥。该密钥允许代表您发送 FCM 消息,因此应仅在您信任的环境中使用。
通常这意味着您控制的服务器。但是,最近推出的 Firebase 云函数 也可以作为这样一个受信任的环境。毕竟:只有具有对您的 Firebase 项目访问权限的开发人员才能访问您的 Cloud Functions 代码,并且这些开发人员已经可以使用 Firebase 控制台中的通知面板发送消息。
您控制的任何设备也都可以作为可信环境。它不必拥有固定的 IP 地址,因为 FCM 服务器通常 通过 XMPP 接收其指令 或者(现在更常见的是)通过 Firebase 数据库接收指令。这两种方法都会从受信任的设备向 Google 的服务器发起连接,因此可以在不接受传入连接的情况下运行。

0

您不需要任何服务器来实现 FCM。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接