コーディングの下に実行されたときに私のFirebaseデータベースは、このFirebase以降.getvalueないと同じ順序でデータベース
のようなものです:
String loc=(snapshot.child("loc").getvalue()).tostring();
私が手出力はと異なる配列を有しますデータベース:
なぜそうですか?
コーディングの下に実行されたときに私のFirebaseデータベースは、このFirebase以降.getvalueないと同じ順序でデータベース
のようなものです:
String loc=(snapshot.child("loc").getvalue()).tostring();
私が手出力はと異なる配列を有しますデータベース:
なぜそうですか?
FirebaseデータはJSONとして保存され、本質的に順不同です。
特定の順序でデータにアクセスする場合は、クエリにorderBy
句を指定し、スナップショットのgetChildren()
メソッドを使用してデータにアクセスする必要があります。
を使用すると、キーの昇順でアイテムを記録したいと言うことですね:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getRef();
Query locations = rootRef.orderByKey();
locations.addListenerForSingleValueEvent(new ValueEventListener() {
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot locSnapshot: snapshot.getChildren()) {
System.out.println(locSnapshot.getKey() + ": " + locSnapshot.getValue(String.class));
}
}
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
// ...
}
});
このサンプルでは、Firebase documentation on reading lists of dataから(変更)しています。
フランクはあなたがここ
は、ドキュメントからの抜粋ですforEach
ではなく、
child
法(または
child.foreach
)を使用する必要があり
orderBy....
使用して彼の正解をチェックアウトし、私の編集に私を打ちます:
JavaScriptオブジェクトの動作のために、 のJavaScr iptオブジェクトがval()によって返された場合、サーバ上の の順序やchild_addedイベントの順序に一致することは保証されません。つまり、forEach()が便利なのは です。 DataSnapshotの子は、クエリの順序で反復されることが保証されています。
出典:https://firebase.google.com/docs/reference/js/firebase.database.DataSnapshot#forEach
これはJavaの質問です。なぜあなたはJavaScriptライブラリを引用していますか? –
私はもっと 'forEach'はJava APIのメソッドではないことを意味しています –
そうです、修正しましょう。 – sorifiend
注文は重要ですか? –
はい、注文は重要です。 – jwen
firebasseデータベース参照を表示できますか?firebase refが間違ったノードを指していると思います – Hamza