如何使用javafx的firebase

时间:2016-05-29 18:59:04

标签: javafx firebase

正在构建一个桌面应用程序,我想使用直观的firebase API进行实时数据同步。我一直在网上搜索,但没有人指出要使用的Jars以及如何使用firebase应用程序进行配置。如果你能协助请给我一些步骤。我擅长以下步骤。我想为所有firebase操作创建一个帮助器类。

3 个答案:

答案 0 :(得分:4)

在客户端计算机上使用admin SDK是有风险的,因为它具有数据库的管理权限。我已经通过创建一个WebEngine开发了一个工作,该WebEngine将读取一个只有firebase web脚本的html文件。

<!DOCTYPE html>
<html>`
<head>
    <script src="https://www.gstatic.com/firebasejs/4.3.0/firebase.js"></script>

    <title></title>
</head>
<body>
</body>
<script>
    try {
        var config = {
          //firebase config here
        };

        firebase.initializeApp(config);
        var data = firebase.database();
        var ref = data.ref("/ref");
        ref.on("value", function (snapshot) {
            //pass snapshot to java
            alert(JSON.stringify(snapshot.val()));
        });
    } catch (error) {
        alert("Error - jse:" + error.message);
    }
</script>
</html>

并在java中检索它

    //Start new webengine to run javascript.
    final WebEngine engine = new WebEngine();
    //get my html file.
    final URL url = NoficationTest.class.getResource("/javafx.html");
    //set to catch alerts from the javascript.
    engine.setOnAlert(event -> {
        try {

            final String data = event.getData();
            if (data != null) {
                if (data.contains("jse")) {
                      //handle if error in javascript.
                } else {
                      //handle if successfull
                }
            }
        } catch (final IOException e) {
            e.printStackTrace();
        }
    });
    //Load html into webengine.
    engine.load(url.toString());

有一个更好的方法让javascript调用java方面的东西,我只是这样做以获得快速答案。我已经测试了这个并且它可以工作。

答案 1 :(得分:2)

按照https://firebase.google.com/docs/server/setup

中的步骤操作

可以分解为:

  • 创建一个firebase项目
  • 从Maven下载SDK
  • 从Web界面下载可以创建的服务帐户文件
  • 添加SDK
  • 初始化SDK

我认为问题在于很容易忽视网站上的一些步骤。只需按照一步一步进行操作,并仔细阅读列出的步骤。

答案 2 :(得分:0)

您可以使用REST Api访问数据库以及身份验证。 看看这个答案: https://stackoverflow.com/a/37419212/5287436