【问题标题】:Dynamically fetch messages published to a Google pub/sub topic in android在 android 中动态获取发布到 Google pub/sub 主题的消息
【发布时间】:2020-11-28 19:18:44
【问题描述】:

我正在构建一个包含应用内订阅的应用。我已经按照Google 的建议通过正确配置实现了实时开发人员通知。每当我购买或取消订阅时,SubscriptionNotification 都会按预期发布到 Pub/Sub 主题。但我无法在应用程序中收到该消息。我的要求是,每当将消息发布到主题时,必须在应用程序内部接收相同的消息,而无需任何明确的请求。而且我订阅了 Google 的 Pub/Sub api。那么在这里拉西装还是我应该去推?因此,我们将不胜感激任何形式的帮助。

【问题讨论】:

    标签: android in-app-purchase in-app-billing google-cloud-pubsub


    【解决方案1】:

    您不希望在应用程序本身中接收 Cloud Pub/Sub 消息。为了实现这一点,您需要为每个应用程序实例订阅一个订阅,而 Cloud Pub/Sub 并非旨在以这种方式扩展:限制为 10,000 subscriptions per topic。此外,应用程序的每个实例都会收到 all 用户的 all 通知,这可能不是您想要的。

    实时开发者通知的目的是让您的服务接收有关用户权利更改的通知。然后,当用户从应用程序向您的服务发出请求时,它可以根据应启用的订阅功能做出适当的响应。如果您希望在权利更改时通知应用程序实例,则必须在服务中单独实施以响应 Cloud Pub/Sub 通知。您可以使用 Firebase Cloud Messaging 之类的东西将适当的消息发送到各个应用程序实例。但是,您仍然需要一个服务来充当 Cloud Pub/Sub 的订阅者,并从主题中获取消息以获取开发者通知,然后将这些消息传递给 Firebase Cloud Messaging。

    【讨论】:

    • 我明白了你的意思,但还有一个问题……Google Pub/Sub 主题中的订阅类型应该是什么,拉取还是推送?我创造了一个拉力。我做对了吗?
    • 这取决于您计划如何建立您的订阅者。如果您打算将其放在 HTTPS 端点后面,并且希望 Pub/Sub 向其发送消息,那么推送是合适的选择。如果您计划调用 Pub/Sub 订阅 API(可能通过客户端库),那么 pull 是正确的选择。