0
Firebaseデータベースでクエリパラメータ(Javaの場合)と一致するオブジェクトを取得して返す簡単なクエリを実行する方法はありますか?私はFirebaseの使い方が非常に新しいので、ドキュメントを理解できる限り、orderBy()は無期限に続く非同期メソッドなので、クエリ後にデータを操作する方法を理解できません。すばやく値を取得して返すコールバックの表記法はありますか?または、Firebaseのマニュアルに何か不足していますか?JavaでのFirebaseクエリ/コールバックの終了
たとえば、このメソッドでは、データベースに指定されたユーザーが含まれているかどうかを調べ、クエリがユーザーと一致する場合はtrueを返します。
public void containsUser(String user) {
DatabaseReference ref = getDatabaseRef("users");
ref.orderByKey().equalTo("user1").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
System.out.println(dataSnapshot.getKey());
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s){}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println(databaseError.getMessage());
}
});
}
これを行う簡単な方法はありますか?
は、このコードは唯一のデータベース内部の構造/情報の変化に応答しません取得するには?私が探しているのは、オブジェクトを1つ取り出してコールバック関数を呼び出す方法です。 – Matt
これは、firebaseのドキュメント(https://firebase.google.com/docs/reference/android/com/google/firebase/database/Query.html#addListenerForSingleValueEvent(com)に従ってデータベースから1つのオブジェクトを取得する適切な方法です。 google.firebase.database.ValueEventListener) – uguboz
また、一度呼び出されてからaddValueEventListenerが呼び出された後は、今後何らかの変更があっても応答しません。 – uguboz