Costruire una classe con tre membri di tipo String e caricarla in Firebase.
Intanto mi creo i riferimenti:
FirebaseDatabase fd=FirebaseDatabase.getInstance(); DatabaseReference db=fd.getReference();Quindi creo la classe per settare il valore di una "key".
FirebaseDatabase fd=FirebaseDatabase.getInstance(); DatabaseReference db=fd.getReference(); Persona persona=new Persona("Mario","Rossi","operaio"); db.setValue(persona); } public class Persona{ public String nome; public String cognome; public String professione; public Persona(String nome, String cognome, String professione){ this.nome=nome; this.cognome=cognome; this.professione=professione; } }Non funziona!
Forse perché ho dimenticato di specificare il child?
Vediamo...
FirebaseDatabase fd=FirebaseDatabase.getInstance(); DatabaseReference db=fd.getReference(); Persona persona=new Persona("Mario","Rossi","operaio"); db.child("persona").setValue(persona); } public class Persona{ public String nome; public String cognome; public String professione; public Persona(String nome, String cognome, String professione){ this.nome=nome; this.cognome=cognome; this.professione=professione; } }(...dopo qualche problema di non ben chiara natura, risolto ricompilando il codice...) Riprovo.
Riuscito!
Esercizio:
Creare una classe con un file immagine in formato byte[], e trovare il modo di trasferirlo su Firebase.
Trovo uno strano codice, che a quanto ho capito può convertire un'immagine in un tipo String.
Molto interessante! Però si basa su uno strano oggetto Base64.
Che cosa è?
Proviamo a usarlo: sono curioso di sapere come può essere una stringa che rappresenti un array di bytes (se ho capito bene).
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.facciadaculo); ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); byte[] b = baos.toByteArray(); String stringaImmagine = Base64.encodeToString(b, Base64.DEFAULT);Vediamo se ottengo messaggi di errore...
.....
Ecco, ho fatto un po' di progressi: non ho ottenuto messaggi di errore, e sono arrivato a convertire, usando l'oggetto Base64, un'immagine in stringa e poi di nuovo in immagine, con successo.
Adesso, però, volendo usare il tutto su Firebase, mi trovo in crisi per il semplice motivo che non ho ancora ben compreso dataSnapshot, che viene restituito dal listener ValueEventListener.
E' necessario un po' di ripasso su questo...
Credo che il dataSnapshot sia un po' un "troncone" di database.
Meglio approfondire la cosa su un post a parte...
Nessun commento:
Posta un commento