我可以使用QML的Firebase吗?

时间:2014-03-15 10:38:37

标签: qml firebase

Qml广泛使用Javascript。

Firebase为浏览器提供了Javascript库。

是否可以使用QML中的Firebase?

欢迎任何具体细节。

2 个答案:

答案 0 :(得分:2)

QML是QT的扩展,它本质上是一个用于创建桌面/移动应用程序的跨平台工具,它不是一个Web浏览器,也不会在浏览器环境中运行它类似JavaScript的代码。

因此,您可以获得Firebase的JavaScript SDK(希望通过XmlHttpRequest,WebSocket,DOM和iframe等API提供)以使其正常运行,这似乎非常不可能。

由于Firebase不提供C ++ SDK,因此从QML访问Firebase的最佳方法似乎是利用存在社区实施REST APIhere


截至2016年底,C++ SDK is now available,主要针对移动平台。目前,它仅支持Firebase功能的一个子集处于活动开发状态,并且可能会添加一些(如果不是全部)缺少的功能。

答案 1 :(得分:1)

如果您打算创建移动应用,可以在您的应用中集成适用于Android和iOS的可用本机Firebase SDK。

此解决方案需要本机Java和Obj-C代码才能与SDK一起使用。然后,您可以使用基于C ++的类型包装此代码,以公开QML的Firebase SDK功能。

这允许使用类似于QML的简单用法:

FirebaseDatabase {
  id: firebaseDb

  Component.onCompleted: getValue("public/path/to/my/object")

  onReadCompleted: {
    if(success) {
      // parameter "value" can be a nested object/array, as read from your database
      console.debug("Read value " + value.subarray[3].subproperty.text)
    }
  }
}

由于需要进行相当多的实施工作,上述示例取自V-Play Engine的现成解决方案。可以找到更多用法示例here