How to set persistence in Firebase Storage on Android? -


i'am using firebase storage list of images on android, every time when app started list downloaded, want store persistence on android images , download if necessary. need check if images downloaded on smartphone. i'am using firebasedatabase store name of files, database can check persistence. think need store images on storage of device, don't know check before download, best way set persistence firebasestorage if possible.

my code looks this:

firebasedatabase:

final firebasedatabase database = firebasedatabase.getinstance();         databasereference databasereference = database.getreference().child("nomes_imagens");          final map<string,object> mapnomesimagens = new hashmap<>();          databasereference.addlistenerforsinglevalueevent(new valueeventlistener() {             @override             public void ondatachange(datasnapshot datasnapshot) {                 log.i(tag,"ondatachanged()");                 iterator<datasnapshot> iterator = datasnapshot.getchildren().iterator();                  while( iterator.hasnext() ) {                     datasnapshot snapshot = iterator.next();                     mapnomesimagens.put(snapshot.getkey(),snapshot.getvalue());                     n1++;                 }                  makelist(mapnomesimagens);                 log.i(tag,"mapa: " + mapnomesimagens.tostring());             }             @override             public void oncancelled(databaseerror databaseerror) {                 log.i(tag,"oncancelled");             }         }); 

firebasestorage:

public boolean makelist(map<string,object> map) {     final firebasestorage storage = firebasestorage.getinstance();      try {         set<string> set = map.keyset();          for(final string nomeexercicio : set) {              string nomearquivo = string.valueof(map.get(nomeexercicio));              final file localfile = file.createtempfile("imagensexercicios","bmp");             storage.getreference().child("imagensexercicios").child(nomearquivo).getfile(localfile).                     addonsuccesslistener(new onsuccesslistener<filedownloadtask.tasksnapshot>() {                         @override                         public void onsuccess(filedownloadtask.tasksnapshot tasksnapshot) {                             log.i(tag,"onsuccess()");                             bitmap bitmap;                             bitmap = bitmapfactory.decodefile(localfile.getabsolutepath());                             exercicio exercicio = new exercicio(nomeexercicio,bitmap);                             exercicios.add(exercicio);                             n++;                         }                     }).                     addonfailurelistener(new onfailurelistener() {                         @override                         public void onfailure(@nonnull exception e) {                             log.i(tag,"onfailure() " + e.getmessage());                         }                     }).                     addoncompletelistener(new oncompletelistener<filedownloadtask.tasksnapshot>() {                         @override                         public void oncomplete(@nonnull task<filedownloadtask.tasksnapshot> task) {                             log.i(tag,"oncomplete()");                             }                          }                     });         }          return true;     } catch (exception e) {         e.printstacktrace();     }      return false; } 

afaik setpersistence enabling intended offline data storage. refresh when internet available.

you can use glide library handle caching. official firebase usage glide given below must sufficient.

link: https://github.com/firebase/firebaseui-android/tree/master/storage

to load image storagereference, use firebaseimageloader class:

// reference image file in cloud storage storagereference storagereference = ...;  // imageview in activity imageview imageview = ...;  // load image using glide glide.with(this /* context */)         .using(new firebaseimageloader())         .load(storagereference)         .into(imageview); 

Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

performance - Why is XCHG reg, reg a 3 micro-op instruction on modern Intel architectures? -

jquery - Responsive Navbar with Sub Navbar -