Проверьте значения Mutiple в Firebase и получите соответствующий узел - PullRequest
1 голос
/ 01 мая 2020

У меня есть список контактов в объекте карты. Я хочу сравнить каждый контакт с Firebase и извлечь этот узел, если контакт соответствует значению.

Пример: Предположим, у меня 123,345,567 в виде 3 контактов, и я хочу получить это полное узел, если контакт внутри узла.

Структура Firebase

-Users
    -someId1
        -contact:123
        -fname:something
    -someId2
        -contact:345
        -fname:something
    -someId3
        -contact:567
        -fname:something
    -someId4
        -contact:980
        -fname:something

Как мне получить эти полные узлы, если данный контакт соответствует узлу Firebase.

Я написал что-то вроде этого

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
final DatabaseReference reference=rootRef.child("Users");
rootRef.addListenerForSingleValueEvent(new ValueEventListener() {
    public void onDataChange(DataSnapshot dataSnapshot) {

        for (Map.Entry<String, String> singleContact : contacts.entrySet()) {
            query=reference.orderByChild("contact").equalTo(singleContact.getKey());
            if (dataSnapshot.hasChild(singleContact.getKey()))
                userModelObjects.add(dataSnapshot.child(singleContact.getKey()).getValue(FirebaseUserModel.class));

        }
}

1 Ответ

1 голос
/ 01 мая 2020

Я предполагаю, что keys in your map похожи на keys in your database:

//your reference
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users");

//make a listener

ValueEventListener listener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {

     //this loop will extract all the values in every random ID

     for(DataSnapshot ds : dataSnapshot.getChildren()){

     //extract the values

     String contact = ds.child("contact").getValue(String.class);
     String fname = ds.child("fname").getValue(String.class);

     //check if they exist in the map, and see what you can do.........


    }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
     //error getting data
    }
};
ref.addValueEventListener(listener);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...