从移动客户端应用程序通过BEAM将消息提取到Firestore

时间:2018-02-22 15:57:01

标签: firebase google-cloud-firestore apache-beam google-cloud-pubsub

我正在开展一个个人项目,以熟悉一些Google / GCP项目和服务(Flutter / Dart,Firestore,Cloud Functions,PubSub,Dataflow / BEAM)。

关于"玩具"的背景问题我正在解决,想象一下基于移动/基于云的Ouija board

  

印有字母,数字和其他标志的木板,其中有一个推板或可移动的指示器,据说可以回答人们在集会上提出的问题。

移动用户可以创建一个董事会,与朋友分享链接,并集体询问董事会简单的问题(例如," Suzie是否喜欢Johnny?")。在同一个板上的玩家在UI中做出哄骗Oiuja"指示符"在一个"众包的#34;办法。 为我提供了在写入firestore之前对用户数据流进行分组/窗口/处理的工具。

我正在努力解决的当前技术问题是:什么是"低代码" +用于将消息从移动应用程序发送到BEAM管道进行处理(最终更改Firestore数据库上的文档属性)的最低延迟模式。

我在下图中描述了3个选项: enter image description here

选项1:移动应用使用云功能,云功能接受有效负载并发布到PubSub主题。这是我最初的想法,但是当我开始仔细研究它时,我质疑云功能是否是必要的。输入选项2

选项2:删除Cloud Function并让UI直接发布到PubSub主题。当我查看文档时,似乎PubSub意味着要利用服务器端,所以也许我还需要云功能?或者我可能更多地依靠Firebase ...输入选项3

选项3:让客户端仅通过Firebase发布消息,并使用云功能选择这些消息并推入PubSub和/或BEAM。优点是我可以从"离线"处理Firestore客户端给了我,但这感觉就像延迟的最坏情况。

我错过了什么吗?这个问题太多了吗"意见"问题

提前致谢。

这里是link to the Google Diagram

EDITS 因此,在仔细考虑后,认证/授权是另一个考虑因素:

选项2 - 我必须要求Google帐户用户授权使用" Pub / Sub"这感觉就像一个糟糕的用户体验。用户不知道" Pub / Sub"是!选项1允许我将服务帐户从Cloud Function添加到Pub / Sub ...并使用除Google以外的其他身份验证提供程序。

选项1 - 我仍然需要在Cloud Function层使用某种安全性来防止不良行为者。

0 个答案:

没有答案