【问题标题】:How do I send notifications from Google Cloud(GCP) via Firebase to an Android app如何通过 Firebase 从 Google Cloud(GCP) 向 Android 应用发送通知
【发布时间】:2018-07-20 23:12:46
【问题描述】:

我知道如何将消息从 Firebase 云消息传送门户发送到 Android 设备。但是我的服务器在 Google Cloud 上运行,我在本地机器上执行 gcloud app deploy,并且应用程序逻辑部署在 Google Cloud 上。现在,我想根据 GCP Datastore 中存储为实体的数据向 Android 应用发送通知。

通知消息可以从 Firestore-Cloud Messaging 门户发送到 Android 设备,如果我可以在我的 GCP 逻辑中利用这个 Firestore Cloud Messaging API,那么我的问题将得到解决。

我正在尝试寻找任何示例或 POC。

【问题讨论】:

    标签: firebase google-cloud-platform google-cloud-datastore google-cloud-functions firebase-notifications


    【解决方案1】:

    您可以使用Cloud Functions 添加此类自定义功能... 例如:https://android.jlelse.eu/serverless-notifications-with-cloud-functions-for-firebase-685d7c327cd4

    还有Cloud Datastore Callbacks,可以用作事件触发器。与 Cloud Functions 最相关的可能是 Google Cloud Datastore Node.js Client - 以便连接到数据存储区。这里是one of my examples,它是用 AppScript(类似于 Node.js)编写的,它也连接到 Cloud Datastore,服务帐户 JSON 从 Google Drive 加载。

    但是,在这种情况下,Datastore 需要随后触发 HTTP Trigger 或 Pub/Sub 触发器,并且该触发器背后的代码可以从 Datastore 获取更多数据或直接发送 Firebase 通知。

    在 Cloud Function 中,只有 Cloud Storage 的触发器,而 Pub/Sub(发布/订阅)触发器可以用于任何事情。 Datastore 需要发布任何事件(添加/编辑/更新/删除) - 而 Cloud Functions 脚本需要订阅这些事件。

    使用 Firebase 作为后端可能会更省力,因为开箱即用地支持数据更改事件/触发器,不涉及任何 HTTP 交互或 Pub/Sub 通信。

    【讨论】:

    • 这不是问题,但我们真的需要使用服务帐户 JSON 文件吗?我的意思是 GCP 和 Firestore 可以存在于同一范围内。我的服务器在 GCP docker 上运行,所以我希望在 GCP 中导入 Firestore API,反之亦然
    • @Enigma 取决于,当不需要从/向数据存储中提取更多值(或写回值)时(例如,使用 HTTP 触发器时),它不需要任何服务帐户访问数据存储区...但是,在使用 Pub/Sub 时,在服务帐户下运行可能最简单:cloud.google.com/pubsub/docs/authentication
    • @Enigma 这里也解释了:cloud.google.com/iam/docs/understanding-service-accounts 你需要一个服务帐户,并分配角色数据存储和发布/订阅(取决于脚本应该能够访问的内容);也可以在这里查看:stackoverflow.com/questions/49112189/… 这些是可用的 Firebase Node.js 包:npmjs.com/~firebase-ops ...尤其是firebase-functions
    • 命令是gcloud functions --help & gcloud beta functions --help
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 2017-11-14
    • 2022-09-28
    • 2018-11-10
    • 2017-04-16
    • 1970-01-01
    相关资源
    最近更新 更多