2016-12-06 7 views
1

Firebaseデータベースから引用と著者を取得しようとしています。現在、データベースが同じように設定されています。私が欲しいものFirebaseデータベースからランダムオブジェクトを取得するにはどうすればよいですか?

[{ 
     "quotes": [{ 
     "quote":"Some quote.", 
     "author": "Some author." 
     },{ 
     "quote":"Some quote.", 
     "author": "Some author." 
     }] 
    }] 

ランダム引用と著者である、とのTextViewに表示されるように、独自の変数に格納します。正しい方向に私を指差しても、皆さんの助けをありがとうございます。

答えて

1

残念ながら、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) { 

     } 
    }); 
+0

どのようにでしょうAndroid Studio v2.2.2でこれを行いますか?いくつかのコードを表示できますか? – Juwdohr

関連する問題