2016-12-21 8 views
0

Ich habe ein Firebase-Konto und ich möchte einige Fotos programmgesteuert auf Firebase-Speicher hochladen. Um dies zu tun, verwende ich die Google Cloud Java Storage API. Ich konfiguriere die Erlaubnis und andere. Ich kann Eimer, Blobs erfolgreich erstellen. Wenn ich jedoch versucht habe, ein Bild hochzuladen, ist die Größe entweder 0 oder es kann nicht heruntergeladen werden (URL wird nicht generiert). Der Code, den ich verwende, ist unten;Firebase-Speicher-Upload von Google Cloud-Speicher Java Api

 Storage storage = StorageOptions.newBuilder().setProjectId("firebaseId") 
       .setCredentials(ServiceAccountCredentials.fromStream(new FileInputStream("jsonFileFor Authentication"))) 
       .build() 
       .getService(); 
     String blobName = "a.jpg"; 
     BlobId blobId = BlobId.of(bucket.getName(), blobName); 
     InputStream inputStream = new FileInputStream(new File("a.jpg")); 
     //BlobInfo blobInfo = BlobInfo.builder(blobId).contentType("image/jpeg").build(); 
     BlobInfo blobInfo = BlobInfo.builder(bucket.getName(), "a.jpg").contentType("image/jpeg").build(); 

    try (WriteChannel writer = storage.writer(blobInfo)) { 
     byte[] buffer = new byte[1024]; 
     int limit; 
     try { 
      while ((limit = inputStream.read(buffer)) >= 0) { 
       writer.write(ByteBuffer.wrap(buffer, 0, limit)); 
      } 

     } catch (Exception ex) { 
      // handle exception 
     }finally { 
      writer.close(); 
     } 
    } 

Jede Beratung wird geschätzt. Grüße.

Antwort

3

Der Code funktioniert. Das Problem hängt mit der Berechtigung zusammen. Sie müssen die Eigentümer-ID für den Google-Speicher als Eigentümer des Firebase-Speicher-Buckets festlegen. Dann können Sie in Firebase Storage Bucket schreiben. Ich lösche den Beitrag nicht, wenn jemand nach dem Schreiben von Firebase-Speicher von Google Storage Java API sucht.

Grüße.