我有一个拥有成千上万用户的应用程序,我们每秒捕获一次数据(位置数据)。为了进行分析,我们试图允许查询这些数据以为用户生成报告。
这个想法是将Realtime数据库中的数据传递给Spanner,以便我可以查询SQL格式的数据并基于此生成报告。 我希望每次更新实时数据库时都可以从触发器中执行此操作。 因此数据遵循以下流程:
iOS / Android位置数据->写入Firebase Realtime DB->基于写入事件的功能触发器->添加到Spanner
这是否可能,如果可以,您如何建议完成? 我已经在使用Firebase函数来触发通知并保持数据库一致性,但是不确定如何连接到扳手。我找到的文档都是关于Cloud功能以及执行此操作的时间
const Spanner = require('@google-cloud/spanner');
我收到“错误:错误解析触发器:找不到模块'@ google-cloud / spanner'”
我的第一个限制是:Firebase功能是否仅限于Firebase本身,或者我可以与其他云工具(如扳手)集成吗?
谢谢
里卡多
答案 0 :(得分:2)
我没有使用实时数据库,PubSub和函数的经验,但我也很感兴趣:)
我设想2个步骤:[1] Firestore触发器可以将消息发布到PubSub,并且[2]函数可以订阅和处理与Spanner交互的PubSub事件。
答案 1 :(得分:1)
该错误表示您尚未(正确)安装Cloud Spanner客户端库。要解决此问题,请在functions文件夹中运行:
npm install @google-cloud/spanner
除非您实际需要RTDB中的数据,否则可以完全避免该步骤,而直接调用Cloud Function:请参见HTTP Functions。
文档中有一个方便的“操作指南”,用于编写与Cloud Spanner进行交互的Cloud Function,只需将其修改为put
而不是get
:请参见Using Cloud Spanner with Cloud Functions