Firebaseデータベースに数字と呼ばれる子があります。私のコードでFirebaseを使用してArrayListに要素を追加できません
OnDataChangeの()メソッド、listNumber.size()の戻り4.内部の場合、私は理解していない。しかしlistNumber.sizeのOnDataChangeの外()値()の戻り0
Firebaseデータベースに数字と呼ばれる子があります。私のコードでFirebaseを使用してArrayListに要素を追加できません
OnDataChangeの()メソッド、listNumber.size()の戻り4.内部の場合、私は理解していない。しかしlistNumber.sizeのOnDataChangeの外()値()の戻り0
OnDataChangeのはFirebaseがデータを返した後、それが呼ばれ、それはすぐに呼ばれていない、リスナーです。
ので、実行順序は次のようになります。データが存在しません。
//result = 0
)//result = 4
)と呼ばれているこれは非同期プログラミングです。 Firebaseはそのメソッドを非同期に実行します。サーバからのデータの取得に時間がかかることがあるため、データを待機しません。したがって、onDataChangedメソッドの外で変数を呼び出すときには、値が割り当てられません。 したがって、nullを保持します。
このステートメントは、onDataChangedメソッドに渡すことができます。 setterメソッドとgetterメソッドを使用してモデルクラスを作成することもできます。 onDataChanged内でモデルクラスのセッターを呼び出して変数の値を設定し、onDataChangedの後にgetterメソッドを呼び出して値を戻します。
コードを画像として投稿しないで、代わりに書式設定されたテキストとして投稿してください。 – SurvivalMachine
基本的には、その最終行をFirebaseコールの上に移動すると同じ結果になります。非同期コードの仕組みを理解し、理解するのに最適 –