首页 > 解决方案 > Android 传感器数据到 Cloud pubsub

问题描述

背景

我有一个传感器“A”,它通过蓝牙连接到我的移动应用程序。该传感器每秒生成 512 个数据点。

我需要的

我需要通过 Cloud pub/sub 将此数据发送到 Google BigTable。我已经创建了一个主题,我可以将消息推送到该主题。

问题是什么

  1. 这个答案说我需要创建一个应用程序引擎并将我的应用程序连接到该应用程序引擎。应用程序引擎将接收数据并通过 pub/sub 和 dataflow 将其发送到 Bigtable。我明白了,但现在我有两个子问题 -

    一个。如何将数据从我的移动应用程序流式传输到应用程序引擎?网络套接字?因为我认为我不能做简单的发布请求来将数据发布到路由(/publishdata),我正确吗?

    湾。我正在通过 firebasea 身份验证在移动应用上对我的用户进行身份验证。我可以通过 firebase-admin sdk 在应用引擎上验证我的用户吗?我可以通过传递 tokenId 来做到这一点,但它是正确的方法吗?或者我可以使用 firebase 在应用引擎上对我的用户进行身份验证吗?

  2. 我见过人们建议创建服务帐户并将其添加到应用程序中的项目。问题是我不想将我的凭据暴露给客户。另一个谈话

谁能建议我解决这个问题?

我的想法

我可以将数据发送到 firebase 实时数据库,然后考虑通过 pubsub 或云功能将该数据移动到 Bigtable。我找不到任何连接到 Firebase 并从实时数据库读取数据的应用引擎示例。我认为在这个例子中,这些人将数据发送到实时数据库,然后使用 pubsub 将数据移动到 Bigtable。如果这是可能的,那么我可以通过 firebase-admin sdk 在应用程序引擎上验证我的用户吗?

标签: androidgoogle-app-enginegoogle-cloud-platformgoogle-cloud-pubsubservice-accounts

解决方案


首先,您应该查看这篇使用 Firebase 构建 Android 应用程序和 App Engine 灵活环境文章,该文章演示了如何使用 Firebase 编写具有后端数据存储、实时同步和用户事件日志记录的移动应用程序。

关于向 App Engine 发送数据的第一个问题,您可以将其作为 HTTP POST 发送。请查看 Stackoverflow 上的以下问题1、2

参考创建服务帐户并将其添加到应用程序中,这不是安全选项。在这种情况下,您可以使用 Callable Cloud Functions。请参阅此Stackoverflow 线程

您可以通过备份服务从 Firebase 实时数据库中获取数据,该服务允许将数据导出到 GCS 存储桶。然后,您可以使用开源 Dataflow 模板将其移动到 Bigtable,例如Cloud Storage Avro 到 Bigtable。请参阅官方文档,了解有关将数据导出到 Bigtable 的更多信息。

我希望它有所帮助。


推荐阅读