2016-06-24 5 views
0

Ich entwickle eine Android-App, die Firebase verwendet. Meine app sieht aus wieBild mit Firebase verwalten

app UI

App-Karte zeigt, die Bild enthält. Ich weiß nicht, wie man das Bild verwaltet, wenn die App im Offline-Modus arbeitet. Können Sie mir einen Vorschlag zur Lösung geben?

+0

einige Code anzeigen, was haben Sie versucht? – Bryan

+0

Ich habe nicht implementiert. Ich habe gerade GUI –

Antwort

0
  1. Zuerst verwenden Offline-Funktionen von Firebase von .setPersistenceEnabled(true);
  2. Verwenden Sie ein Bild Managing Cloud Server wie Cloudinary mit all Ihre Bilder zu speichern.
  3. Speichern Sie in Ihrer Firebase-Datenbank die URL als String in dem Bild.
  4. Verwenden Sie eine Bildbibliothek wie Picasso, um Ihr Bild von der URL zu erhalten.

Das funktionierte für mich, hoffe es hilft dir.

+0

Ich habe Android-Universal-Image-Loader gefunden. Ich denke über Picasso und Universal-Image-Loader nach. Hast du irgendwelche Ideen? –

+0

zum Abrufen von Bildern von einem Server, ich gehe für Picasso, aber Sie können wählen, was Sie wollen, beide funktionieren wie Charme –

0

Verwenden Sie Picasso oder eine ähnliche Bibliothek, um das Bild zu laden, anzuzeigen und zu speichern.

Verwenden Sie Firebase nur für das Hochladen von Bild in die Cloud und erhalten Sie einen Link.

Beispiel Upload-Bild:

StorageReference storageReference = FirebaseStorage.getInstance().getReference(app.packageName + ".webp"); 
     UploadTask uploadTask = storageReference.putFile(Uri.fromFile(new File(app.icon))); 
     uploadTask.addOnFailureListener(new OnFailureListener() { 
      @Override 
      public void onFailure(@NonNull Exception e) { 
       success = false; 
       countDown.countDown(); 
       Log.e(TAG, "", e); 
      } 
     }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
       Log.i(TAG, "onSuccess"); 
       app.setPublicIconPath(taskSnapshot.getDownloadUrl().toString()); 
       ref.child(app.getFirebaseKey()).child("icon").setValue(app.getFirebaseValueDataPart1().getIcon()); 
      } 
     });