【问题标题】:How to use Firebase with a linux based client app for bidirectional messages communication with server如何使用 Firebase 和基于 linux 的客户端应用程序与服务器进行双向消息通信
【发布时间】:2018-10-16 19:41:52
【问题描述】:

我在互联网上看过 Google 的文档和很多关于如何在 Android / iOS 应用程序中使用 Firebase 的示例,但我想开发一个在 linux 机器上运行的客户端 Firebase 应用程序。

我的要求是:

  • 客户端在 linux 环境下运行(用 C++ 或 python 编写)。
  • 服务器是用 Javascript (NodeJS) 编写的。
  • 服务器和客户端之间应使用 Firebase 实时数据库进行双向通信。

我还看到了 firebase REST api,但我认为这对我来说还不够好,因为我还没有看到客户端侦听器 api 可以侦听 onValueChanged 之类的东西。

问题:

如何在 C++ 或 python 中实现一个基于 linux 的应用程序,该应用程序使用侦听器侦听来自服务器的消息(数据更改),而不必每隔几秒调用一些 get 函数(就像 NodeJS 有ref.on("child_changed",...) 还是 ref.on("value",...)


非常感谢您的帮助!

【问题讨论】:

  • 不确定 Firebase 的 C++ SDK。但我的理解是,只有 iOS、Android 和 JS SD 提供数据库监听器。这对于 python SDK 来说绝对是正确的。 (基本上归结为 SDK 如何与 Firebase、普通 HTTP 或 WebSockets 通信。

标签: python c++ firebase google-cloud-messaging firebase-cloud-messaging


【解决方案1】:

遗憾的是,Python 中没有实时数据库的官方库,但有一些第三方封装 REST API。

具体来说,我会查看Pyrebase 库,它还支持收听实时更改https://github.com/thisbejim/Pyrebase#streaming

有关更多信息、库或其他语言,请查看此页面https://firebase.google.com/docs/database/rest/start

【讨论】:

    【解决方案2】:

    Google 提供了一个 C++ SDK,您可以通过here 下载它。

    页面底部还有一个教程,但如果你真的想深入研究一些代码,here 是 github 上来自 google 的快速入门代码,其中包含 Firebase 上每个类别的示例。

    Google 还在 C++ 中为桌面操作系统实现了一个用于演示目的的游戏。 here你可以在这里找到更多高级功能和代码示例。

    我只在 Mac OS X 上的 XCode 项目中尝试过,它运行良好。我没有实时数据库的代码,但你应该在 github repo 中找到示例项目。 https://github.com/firebase/quickstart-cpp

    我希望这会有所帮助!

    您好。

    【讨论】:

      【解决方案3】:

      您有没有尝试使用 C++ 的实时数据库触发器(目前处于测试阶段),它允许您模拟与 JS 相同的工作流程? 从我的角度来看,这是让它随心所欲地工作的最佳方式。 https://firebase.google.com/docs/functions/database-events

      【讨论】:

      • 抱歉,我没有在链接中看到您发送的用于 C++ 或 python 实现的 beta API,谷歌提供的 API 只是在 NodeJS 中。能否请您参考一个用 C++ 或 python 甚至除 JS/NodeJS 以外的任何其他语言编写的代码示例吗?
      • 很可能,这是任何非 JS/Java 语言的总体信息。我实际上不知道,但这应该对您有所帮助:firebase.google.com/docs/database/cpp/retrieve-data 记录了用于值更改的事件侦听器。因此,您需要更深入地研究 C++ 触发器的文档。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多