Получить данные узла, если значение присутствует в Firebase - PullRequest
0 голосов
/ 01 мая 2020

Я хочу получить узел, когда определенное значение присутствует в Firebase.

Например: если мой указанный Контакт = 123 присутствует внутри какого-либо узла, тогда получить полные данные этого узла, то есть someId1

Моя структура Firebase

-Users
    -someId1
        -Contact: 123
        -fname: something
        -lname: something

    -someId2
        -Contact: 456
        -fname: something
        -lname: something

Как мне получить someId1, если Contact = 123 совпадает внутри узла? Помогите решить используя android код.

1 Ответ

0 голосов
/ 01 мая 2020

Чтобы получить данные, соответствующие первому элементу, используйте следующие строки кода:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference productsRef = rootRef.child("Users");
Query query = productsRef.orderByChild("Contact").equalTo("123");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String fname = ds.child("fname").getValue(String.class);
            String lname = ds.child("lname").getValue(String.class);
            Log.d("TAG", name + "/" + lname);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d("TAG", databaseError.getMessage()); //Don't ignore errors!
    }
};
query.addListenerForSingleValueEvent(valueEventListener);

В соответствии с вашей схемой, вывод в logcat будет:

something/something
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...