read - ¿Cómo leer datos de Firebase UNA VEZ que usas java/android?
listview firebase android (1)
Ese es el método correcto, y estás en el camino correcto. La denominación es un poco confusa (¡lo siento!). Si realiza el addListenerForSingleValueEvent, el método reemplazado onDataChange se invocará exactamente una vez, con un DataSnapshot, tal como lo desea (y como lo haría "ref.once (''value'' ...)").
Entonces deberías poder hacer:
// Add all polls in ref as rows
polls.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot child : snapshot.getChildren()) {
...
}
}
}
Intento utilizar la API de Java para leer datos de una base de datos de Firebase en una aplicación de Android en el evento onCreate (). En otras palabras, estoy tratando de hacer la lectura más simple posible, el equivalente de ...
ref.once(''value'', function(snapshot) {
});
... en la API de Javascript. Estoy intentando utilizar el método addEventListenerForSingleValueEvent (), pero parece querer que anule el método onDataChange (), que no es lo que quiero. Quiero sacar los datos cuando la ejecución del programa llegue a esta línea, independientemente de los eventos de la base de datos. Aquí está mi función (inacabada) ...
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.poll_table);
// First get the table layout
tbl = (TableLayout) findViewById(R.id.pollsTable);
// Now let''s create the header
TableRow tHead = createPollsTableHeader();
// Add header to tableLayout
tbl.addView(tHead, new TableLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT));
// Add all polls in ref as rows
polls.addListenerForSingleValueEvent(new ValueEventListener() {
// DON''T KNOW WHAT TO DO HERE
}
}
Ni siquiera creo que este sea el método correcto. Solo quiero poder obtener un Datasnapshot que pueda repetir y obtener datos, como ...
for (Datasnapshot child : datasnapshot) {
}
... como si estuviera usando el ref.once(''value'', function(snapshot)
en la API de Javaxcript.