我无法理解本文档中有关如何使用 Firebase 云消息传递将上游消息发送到"云"的"在我自己的环境中实现的应用服务器"的具体含义。
上下文
文档说,要发送上游消息,我需要自己的应用程序服务器,该服务器在 HTTP 或 XMPP 中实现两种连接服务器协议之一。
我困惑的原因
我的期望是,如果我使用Firebase,我不需要创建自己的服务器。所有后端的东西都由他们处理。所以对我来说,当他们说我需要在自己的环境中创建自己的应用程序服务器时,这与我的期望和理解背道而驰,因此让我再次猜测其含义。
我特别困惑并询问
什么- 应用服务器到底是什么意思?
- "在我自己的环境中"到底是什么意思?
我的两个问题的另一种方式是:
- 在这种情况下,应用程序服务器是否意味着我使用Node.JS/Express之类的东西自己编写的典型应用程序服务器.JS并在Digital Ocean之类的东西上托管? 和/或
- 我需要对其他Firebase/Google Cloud产品(例如托管或App Engine)执行操作吗?
- 或者,我在应用程序上实现的实时数据库功能是否可以被视为"应用程序服务器",因为它为我的应用程序提供数据。
到目前为止我做了什么
通读Firebase上与云消息传递相关的每一份文档,并浏览Google。
我已经充分阅读了要问什么问题和要避免什么问题。我注意到这个问题可能有很多不同且所有正确答案的问题,因此如果这违反了其中一条规则,请道歉。但是我在 Meta 上遇到了这个问题,这表明要求澄清文档对于 SO 来说是可以的。
在这种情况下,应用程序服务器是否意味着我使用 Node.JS/Express 之类的东西自己编写的典型应用程序服务器.JS并在 Digital Ocean 之类的东西上托管?
完全。
我需要对其他Firebase/Google Cloud产品(例如托管或App Engine)执行操作吗?
取决于您的用例。但对于 Firebase 云消息传递,当您只需要发送下游消息时,您不需要应用服务器。您可以使用Firebase控制台。如果您需要发送上游消息,则必须实现自己的应用服务器。
或者,我在应用程序上实现的实时数据库功能是否可以被视为"应用程序服务器",因为它为我的应用程序提供数据?
不完全是。Firebase 实时数据库会存储您需要的数据,但 FCM 所需的应用服务器可以处理请求(发送(下游和接收(上游))。
应用通知由 Firebase 云消息服务器发送。要发送这些通知,您必须告诉必须向哪些设备发送通知。
因此,您必须从后端服务器(Node.js,PHP 服务器)发送 FCM 客户端 ID。当您将 Firebase 集成到应用中时,您将获得 FCM 客户端 ID。您必须将 FCM 客户端 ID 存储在后端服务器中,就像在用户注册期间一样。
要向设备发送通知,请从后端服务器检索 FCM 客户端 ID,然后将其发送到 Firebase 云消息服务器,它将检查客户端 ID 是否有效并触发通知。