6

如何將Firebase與Java桌面應用程序集成?Firebase普通Java客戶端

是否有我可以下載的.jar文件?

我在舊的Firebase版本上看到過純Java文檔,但我無法找到有關最新版Firebase的任何文檔。

我的IDE是Netbeans。

謝謝。

+1

出於好奇,您試圖使用Firebase中的哪些特定API? –

+0

數據庫,認證和存儲 – RamithDR

+1

謝謝澄清。我認爲您可以將代碼的服務器版本(https://firebase.google.com/docs/database/server/start)與Google API客戶端庫中的OAuth代碼結合使用(https:// developers.google.com/api-client-library/java/google-oauth-java-client/oauth2),但通過在Google雲端平臺中使用等效功能可以更好地爲您服務,特別是通過Google Cloud創建API位於Google雲端存儲和Google雲端數據存儲或Google雲端SQL存儲之上的端點。 –

回答

2

可以使用火力服務器-SDK-3.0.1.jar(當前版本)

在NetBeans中,我會建議創建Maven項目並使用神器:的GroupId - com.google.firebase,artifactId的:火力-server-SDK。

我完全適合我。 你可以找到一些文件here

要初始化SDK只需按照文檔:添加服務帳戶(我用的所有者角色,我沒有嘗試過的角色較弱),下載專用密鑰,並使用此代碼片段:

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); 
+0

感謝您的回覆。你有哪些API可以與之合作?我的主要需求是數據庫,身份驗證和存儲,我可以在這種方法中使用這些API嗎? 您是否介意在初始化應用程序時發佈一些示例代碼,因爲在添加Maven依賴項之後,我無法設置連接。 – RamithDR

+0

我使用數據庫API,但我相信也支持其他API。 – FiveDragons

+2

在這種情況下使用服務帳戶可能不是正確的做法......您不僅可以向每個用戶提供服務帳戶的憑證(通常應該保持更多限制),但實際上所有操作都將執行就好像服務帳戶是登錄用戶一樣(而不是用人類用戶的權限來行事)。雖然服務帳戶在服務器上是有意義的(這就是服務器示例代碼中使用它的原因),但如果在客戶端重用服務器Java代碼,這可能不是正確的身份驗證方式。 –

0

按照documentation website火力地堡將不只是這樣的工作,它的設計爲僅在3個平臺上運行,即應用程序:

  • 的Android
  • 的iOS
  • 網絡

您可以嘗試使用Maven存儲庫進行集成,並使用任何構建腳本。我不完全確定你期望做什麼。

+0

我想將Firebase與Java桌面應用程序或Java Web應用程序集成,所以如果我想將Firebase與Java Web應用程序集成,我應該使用JS API? – RamithDR

+0

你可以使用平臺支持的任何東西 – thepoosh

1

對於火力地堡存儲在服務器,我推薦使用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));