【问题标题】:How to use firebase with javafx如何在 javafx 中使用 firebase
【发布时间】:2016-09-27 13:53:20
【问题描述】:

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

【问题讨论】:

  • 不,我检查了那个链接,但我无法得到我想要的。抱歉,我可能听起来很懒,但我正在做一些紧急的事情,这就是为什么在这里发布问题。我想知道我是否可以获得有关如何初始化和/或使用带有 java 的 firebase 的示例代码,其中包含下载 jars 的指针
  • 您可以从 Maven 下载它。 mvnrepository.com/artifact/com.google.firebase/…
  • 是的,我已经看过入门指南。您从哪里获得示例代码中的“serviceAccountCredentials.json”: FirebaseOptions options = new FirebaseOptions.Builder() .setServiceAccount(new FileInputStream("path/to/serviceAccountCredentials.json")) .setDatabaseUrl("databaseName.firebaseio.com/") 。 build(); FirebaseApp.initializeApp(options);

标签: javafx firebase


【解决方案1】:

按照https://firebase.google.com/docs/server/setup的步骤进行

可以分为:

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

我认为问题在于很容易忽略网站上的一些步骤。只需按照他们一步一步并仔细阅读列出的步骤。

【讨论】:

    【解决方案2】:

    在客户端计算机上使用管理 SDK 是有风险的,因为它对您的数据库具有管理员权限。我通过创建一个 WebEngine 开发了一个解决方法,该 WebEngine 将读取一个没有正文的 html 文件,只有 firebase Web 脚本。

    <!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 方面的东西,我只是这样做是为了得到一个快速的答案。我已经对此进行了测试,并且可以正常工作。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-01
        • 2021-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-15
        相关资源
        最近更新 更多