残念ながら、Firebaseではリストからランダムな値を取得することはできません。ただし、リストのサイズを取得して、Random
クラスを使用して、0とリストのサイズの間でint
を生成し、それをインデックスのように使用すると、インデックスがランダムに生成されるまでリスト内を反復処理できます。
これは、あなたがそれを行うことができる方法の例です:
Quote.classの内容:
class Quote {
String quote;
String author;
}
ランダムな見積もりを取得するための方法:
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("quotes");
databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot != null) {
Random random = new Random();
int index = random.nextInt((int) dataSnapshot.getChildrenCount());
int count = 0;
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
if (count == index) {
Quote quote = snapshot.getValue(Quote.class);
doSomethingWithYourQuote(quote);
return;
}
count++;
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
どのようにでしょうAndroid Studio v2.2.2でこれを行いますか?いくつかのコードを表示できますか? – Juwdohr