Как мне вставить значение в Multiple Child Nodes Firebase? - PullRequest
0 голосов
/ 25 мая 2020

Я хочу вставить значение myid: true в указанные несколько дочерних узлов.

Например: У меня следующая структура Firebase

-Friends
    -id1
        -someid:true
        -myid:true
    -id2
        -someid:true
        -myid:true
    -id3
        -someid:true
        -someid:true

Я хочу добавить myid: true только в указанные узлы id1, id2. Эти идентификаторы находятся в массиве строк.

String ids[]={"id1","ids2"}; // it may be thousands of ids

Я написал такой код.

String ids[]={"id1","id2"};
        final String myid="myid";
        for(int i=0;i<ids.length;i++) {
            final DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Friends");
            reference.child(ids[i]).addListenerForSingleValueEvent(new ValueEventListener() {
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    reference.child(myid).setValue(true);
                }
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });
        }

Пожалуйста, помогите мне написать эффективный код. Спасибо

1 Ответ

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

Использовать список массивов для огромного набора данных -

ArrayList ab c = новый ArrayList

Добавить данные в список -

ab c .add («Id1») ab c .add («id2») ... и т. Д.

Вы можете использовать то же самое для добавления элементов в for l oop.

Затем вы можете использовать приведенный выше код для установки значения каждого идентификатора.

Оптимизированное решение для больших наборов данных.

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