【问题标题】:Firebase Plain Java ClientFirebase 普通 Java 客户端
【发布时间】:2016-12-27 21:46:32
【问题描述】:

如何将 Firebase 与 Java 桌面应用程序集成?

有我可以下载的 .jar 文件吗?

我在旧版 Firebase 上看到过纯 Java 文档,但我找不到有关最新版 Firebase 的任何文档。

我的 IDE 是 Netbeans。

谢谢。

【问题讨论】:

  • 出于好奇,您尝试使用 Firebase 中的哪些特定 API?
  • 数据库、认证和存储
  • 感谢您的澄清。我认为您可以将代码的服务器版本 (firebase.google.com/docs/database/server/start) 与 Google API 客户端库 (developers.google.com/api-client-library/java/…) 中的 OAuth 代码结合使用,尽管使用 Google 中的等效功能可能会更好地为您服务Cloud Platform,特别是在 Google Cloud Storage 和 Google Cloud Datastore 或 Google Cloud SQL 的存储之上使用 Google Cloud Endpoints 创建 API。
  • 感谢您提供更多信息。如果可以接受以 JavaScript 将管理面板实现为 Web 应用程序,我认为您会发现这是最受支持的方法和阻力最小的路径。
  • 我个人推荐 Angular2,因为它得到了 Google 的大力支持,可以在服务器端和客户端呈现,允许您从完全隔离的“组件”组成 UI彼此,并且是 AngularJs 的继任者,在行业中具有相当广泛的应用。但是,话虽如此,您确实可以将任何您想要的 JavaScript 库、框架等与 Firebase JavaScript 库结合使用。

标签: java firebase firebase-realtime-database firebase-authentication firebase-storage


【解决方案1】:

根据documentation website,Firebase 不会那样工作,它是一个设计为只能在 3 个平台上运行的应用程序,即:

  • 安卓
  • iOS
  • 网络

您可以尝试将 maven 存储库与任何构建脚本一起用于集成目的。我不太确定你希望做什么。

【讨论】:

  • 我想将 Firebase 与 Java 桌面应用或 Java Web 应用集成,所以如果我想将 Firebase 与 Java Web 应用集成,我应该使用 JS API?
  • 你可以使用平台支持的任何东西
【解决方案2】:

对于服务器上的 Firebase 存储,我建议使用gcloud-java

// Authenticate using a service account
Storage storage = StorageOptions.builder()
    .authCredentials(AuthCredentials.createForJson(new FileInputStream("/path/to/my/key.json"))
    .build()
    .service();

// Create blob
BlobId blobId = BlobId.of("bucket", "blob_name");
// Add metadata to the blob
BlobInfo blobInfo = BlobInfo.builder(blobId).contentType("text/plain").build();
// Upload blob to GCS (same as Firebase Storage)
Blob blob = storage.create(blobInfo, "Hello, Cloud Storage!".getBytes(UTF_8));

【讨论】:

    【解决方案3】:

    您可以使用 firebase-server-sdk-3.0.1.jar(当前版本)

    我建议在 Netbeans 中创建 Maven 项目并使用 artifact: GroupId - com.google.firebase, ArtifactId: firebase-server-sdk。

    我非常适合我。 你可以找到一些文档here

    要初始化SDK,只需按照文档:添加服务帐户(我使用所有者角色,我没有尝试过更弱的角色),下载私钥,然后使用这个sn-p:

    FirebaseOptions options = new FirebaseOptions.Builder()
      .setServiceAccount(new FileInputStream("path/to/downloaded private key.json"))
      .setDatabaseUrl("https://your database name.firebaseio.com/")
      .build();
    FirebaseApp.initializeApp(options);
    

    【讨论】:

    • 感谢您的回复。您有机会使用哪些 API?我的主要需求是数据库、身份验证和存储,我可以在这种方法中使用这些 API 吗?您是否介意发布一些有关如何初始化应用程序的示例代码,因为添加 Maven 依赖项后我无法设置连接。
    • 我使用数据库API,但我相信其他API也支持。
    • 在这种情况下使用服务帐户可能不是正确的做法......您不仅会为每个用户提供服务帐户的凭据(通常应该保持更多限制),而且实际上,所有操作都将像服务帐户是登录用户一样执行(而不是以人类用户的权限行事)。虽然服务帐户在服务器上有意义(这就是为什么在服务器示例代码中使用它),但如果在客户端上重用服务器 Java 代码,这可能不是正确的身份验证方式。
    • 正如 Michael 所说,服务器 SDK 使用 Google 服务帐户,不适合桌面客户端,因为您必须将其与客户端一起分发
    • @MichaelAaronSafyan 有什么好的选择吗?我想在我正在制作的 SDK 中使用 Firebase (Analytics&remote-config)...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 2021-02-07
    • 1970-01-01
    相关资源
    最近更新 更多