【问题标题】:Android Sensor data to Cloud pubsubAndroid 传感器数据到 Cloud pubsub
【发布时间】:2020-07-13 23:32:04
【问题描述】:

背景

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

我需要什么

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

有什么问题

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

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

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

  2. 我看到projects 有人建议创建一个服务帐户并将其添加到应用程序中。 问题是我不想将我的凭据暴露给客户。 Another talk

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

我的想法

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

【问题讨论】:

    标签: android google-app-engine google-cloud-platform google-cloud-pubsub service-accounts


    【解决方案1】:

    首先,您应该看看this使用 Firebase 和 App Engine 柔性环境构建 Android 应用一文,该文章演示了如何编写具有后端数据存储、实时同步和用户事件的移动应用使用 Firebase 进行日志记录。

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

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

    您可以通过 backup service 从 Firebase 实时数据库中获取数据,这允许将数据导出到 GCS 存储桶。然后,您可以使用开源 Dataflow 模板将其移至 Bigtable,例如 Cloud Storage Avro to Bigtable。请参考official documentation,了解有关将数据导出到 Bigtable 的更多信息。

    希望对你有帮助。

    【讨论】:

    • 感谢您的回复。我刚看到你的消息。让我浏览一下您提供的链接并回复您。并再次感谢你:) 是安全的。
    • 我浏览了您为使用 Firebase 的 App Engine 柔性环境发送的整个链接。看起来很有希望,但我有几个问题 - (1) 如果我有多个用户,应用引擎将如何识别 firebase 中的用户和相关数据库。 (2) 我是否手动设置了 servlet 标识符? (3) 现在的例子使用java-servlets,只用NodeJS可以吗?
    • 我确实使用带有 NodeJS 的应用程序引擎制作了一个应用程序,并使用了 firebase-admin sdk。它可以使用服务帐户读取给定项目中的所有数据库。它具有对数据库的完全读写访问权限。现在,我无法为每个用户创建一个监听器,但我确实看到了我可以循环的整个数据集,但是当你拥有数百万用户时,这看起来不是正确的方法。 java-servlet 在哪里处理它。你能在这里指导我吗?现在我的另一个步骤是将 pubsub 合并到应用程序中以将数据发送到 bigTable。你能指导我一点吗?谢谢你:)
    • 你应该看看这里:firebase.google.com/docs/database/admin/start -> “检索数据”。您可以使用的另一个有趣的东西是 Database Triggers firebase.google.com/docs/functions/database-events ,您可以在其中收到一个数据对象,其中包含存储在指定文档中的数据的快照。
    • 你能给我一些想法来为 Bigtabel 设计模式吗?是的,我已经阅读了文档,但我很困惑。在 Bigtable 中存储每个用户的时间序列数据时,我应该继续使用哪种模式?
    猜你喜欢
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多