通过 iOS 应用触发谷歌云功能的最佳方式
Posted
技术标签:
【中文标题】通过 iOS 应用触发谷歌云功能的最佳方式【英文标题】:Best way to trigger a google cloud function by an iOS app 【发布时间】:2020-12-04 16:40:58 【问题描述】:我正在构建一个 Swift 应用程序,该应用程序基于 URL 作为主键从 MongoDB 中提取数据。如果 URL 不在集合中,那么我想触发 Google Cloud Function 去检查 URL 并将其添加到数据库中。
在查看 Cloud Function 触发选项时,我没有看到一种简单的方法来让它监视对 MongoDB 的写入(计划是有一个新 URL 表,它将通过云函数运行。)
我看到了 PubSub 和 Firebase 触发器,PubSub 似乎是最好的选择,但是我找不到很多关于从 ios 向 PubSub 发布消息的信息(尽管有很多关于订阅的信息)
我确实看到了很多关于 FireBase 的 iOS 文档。我想知道是否最好写入 Firebase 并触发它,因此应用程序的每个用户在输入无法识别的 URL 时,应用程序都会将该 URL 写入 Firebase,这将触发云功能。或者我应该弄清楚如何让 iOS 应用程序向 PubSub 主题发布消息?目前我不需要超快速响应,因为系统预计需要时间来处理新 URL。
【问题讨论】:
【参考方案1】:您可能会获得更好的写入 Firebase 并让 Firebase 触发您的 Cloud Function 的体验。遗憾的是,Swift 中没有官方支持的 Cloud Pub/Sub 客户端。
【讨论】:
【参考方案2】:通过 iOS 应用触发谷歌云功能的最佳方式
根据您的问题标题和正文,我想说最好的方法是通过您的应用调用Callable Cloud Function。
如文档中所述:
Firebase 客户端 SDK 的 Cloud Functions 可让您调用函数 直接来自 Firebase 应用。在此从您的应用调用函数 方式,在 Cloud Functions 中编写和部署 HTTPS 可调用函数, 然后添加客户端逻辑以从您的应用中调用该函数。
有关如何编写 Cloud Function 以及如何从您的 iOS 应用程序调用它的所有详细信息都可以在上面提到的文档中找到。
【讨论】:
谢谢,我会深入研究它作为替代方案。我觉得写入数据库并触发它会更好,这样如果其中一个进程死亡,请求仍然会被记录。 是的,写入 DB 是一种选择。请注意,与 Callable Cloud Function 相比,它增加了写入 DB 的成本,Callable Cloud Function 不会比 Cloud Function 调用产生任何额外成本。以上是关于通过 iOS 应用触发谷歌云功能的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章
通过谷歌云功能在 DataFlow 作业中的 GCS .csv