これは超まっすぐであれば謝罪先行ので、私は、Javaのに非常に新しいです。Android:Firebase Datasnapshotをループし、クラスレベルの配列リストにキーを格納する方法は?
私はFirebaseデータベースをループに同点とArrayListの中にすべての子供のキーセットを格納しています。ここで
コードの短いバージョンです:私は(「アプリケーション情報真ん中」)ログインすると
public class MainActivity extends AppCompatActivity {
private DatabaseReference mRefEvents;
private List<String> newArray;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRefEvents = FirebaseDatabase.getInstance().getReferenceFromUrl("https:***");
newArray = new ArrayList<String>();
mRefEvents.addValueEventListener(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot)
{
for (DataSnapshot child : dataSnapshot.getChildren())
{
for (DataSnapshot grandChild : child.getChildren())
{
newArray.add(grandChild.getKey());
}
}
Log.i("App info middle", newArray.toString());
}
@Override
public void onCancelled(DatabaseError databaseError)
{
}
});
Log.i("App info end", newArray.toString());
}
}
NEWARRAY addValueEventListener
メソッド内で、私は私が必要とする正確な値を取得します。しかし、下の2番目のログ( "App info end")は私に空の配列を与え、ArrayList newArrayにキーを格納しません。
私は何かシンプルなものが欠けていると確信していますが、どんな提案も高く評価されます。ありがとう!
あなたはアレクサンダー絶対的に正しかったです。ここにコンソール出力があります –
12-26 20:02:13.175 8247-8247/com.example.kaznaur.simafirebasetrial I/App info end:[] 12-26 20:02:14.259 8247-8247/com.example kaznaur.simafirebasetrial I/Appインフォメーションミドル:[Debates、Speach、Bachelor、Housewives、Voice、Football] 12-26 20:02:20.760 8247-8247/com.example.kaznaur.simafirebasetrial I/App info buttonClick:[議論[ディスカッション、スピーチ、学士、主婦、ボイス、サッカー] 12-26 20:02:30.311 8247-8247/com.example.kaznaur.simafirebasetrial I/App info buttonClick: –
Firebaseを使用しているときに私は最初に私を引き離していました。あなたのためにそれを圧延している喜んで。 –