将Firebase功能从实时数据库连接到Spanner

时间:2018-10-20 18:59:01

标签: firebase firebase-realtime-database google-cloud-platform google-cloud-functions google-cloud-spanner

我有一个拥有成千上万用户的应用程序,我们每秒捕获一次数据(位置数据)。为了进行分析,我们试图允许查询这些数据以为用户生成报告。

这个想法是将Realtime数据库中的数据传递给Spanner,以便我可以查询SQL格式的数据并基于此生成报告。 我希望每次更新实时数据库时都可以从触发器中执行此操作。 因此数据遵循以下流程:

iOS / Android位置数据->写入Firebase Realtime DB->基于写入事件的功能触发器->添加到Spanner

这是否可能,如果可以,您如何建议完成? 我已经在使用Firebase函数来触发通知并保持数据库一致性,但是不确定如何连接到扳手。我找到的文档都是关于Cloud功能以及执行此操作的时间

const Spanner = require('@google-cloud/spanner'); 

我收到“错误:错误解析触发器:找不到模块'@ google-cloud / spanner'”

我的第一个限制是:Firebase功能是否仅限于Firebase本身,或者我可以与其他云工具(如扳手)集成吗?

谢谢

里卡多

2 个答案:

答案 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