obter valor aleatório android firebase java
Eu quero obter um aleatório da minha lista usando push () em java.
Aqui está o meu código para armazenar meus dados:
Firebase publRef = f.child("Language").child("German").child("Message");
Firebase newPublRef = publRef.push();
Map<String, Object> publ = new HashMap<String, Object>();
publ.put("pubMsg", writeMsgField.getText().toString());
newPublRef.setValue(publ);
É assim que parece no meu banco de dados do firebase:
Language
German
Message
-Jf6ShYy7niHrqg_x4Tc: "Tomorrow is very windy"
-Jf9v0xHAxINUUANrORU: "Today is very windy and rainy"
É assim que eu recupero meus dados:
Firebase f = new Firebase("https://myapp.firebaseio.com/Language/German/Message/");
f.addValueEventListener(new ValueEventListener() {
public void onDataChange(DataSnapshot snapshot) {
disp_msg = (TextView)findViewById(R.id.display_msg);
//disp_msg.setText(snapshot.getValue().toString());
Iterable<DataSnapshot> ds = snapshot.getChildren();
Iterator<DataSnapshot> ids = ds.iterator();
Map<String, Object> newPost = (Map<String, Object>) ids.next().getValue();
String msg = newPost.get("pubMsg").toString();
disp_msg.setText(msg.toString());
}
Quero recuperar um valor aleatório no meu banco de dados. Por exemplo. Obter um valor aleatório, pode ser "amanhã está muito vento" ou "hoje está muito vento e chuva".
Vocês podem me ajudar com algumas informações que eu possa usar em java, ainda sou inexperiente em outros idiomas. Agradeço antecipadamente.
RESOLVIDO
//getting maximum number of children
long allNum = snapshot.getChildrenCount();
int maxNum = (int)allNum;
//getting the random integer from number of children
int randomNum = new Random().nextInt(maxNum);
int count = 0;
//has next will check the next value while count is used as a position substitute.
while(ids.hasNext() && count < randomNum) {
ids.next();
count ++; // used as positioning.
}