Как вы добавляете в список массивов в базе данных в реальном времени? - PullRequest
0 голосов
/ 01 октября 2018

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

enter image description here

У меня есть код для добавления контактов, который при вводев EditText он проверяет через базу данных, существует ли электронная почта, и если она существует, он добавляет электронную почту в список контактов.Однако в моей базе данных ничего не добавляется.

    public void searchContacts(final String emailInput){
    final DatabaseReference users;

    users = FirebaseDatabase.getInstance().getReference("users");
    users.orderByChild("email").equalTo(emailInput).addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for (DataSnapshot userSnapshot: dataSnapshot.getChildren()){
                if((userSnapshot.child("email").getValue(String.class).equals(emailInput))){
                    users.child(FirebaseAuth.getInstance().getCurrentUser().getUid()).child("contacts").child(emailInput).setValue(true);
                }
            }
        }

1 Ответ

0 голосов
/ 01 октября 2018

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

public void searchContacts(final String emailInput){
    DatabaseReference users = FirebaseDatabase.getInstance().getReference("users");
    users.orderByChild("email").equalTo(emailInput).addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            List<String> list = new ArrayList<>(); //Create the list
            for (DataSnapshot userSnapshot: dataSnapshot.getChildren()){
                String email = userSnapshot.child("email").getValue(String.class);
                if(email.equals(emailInput)){
                    users.child(FirebaseAuth.getInstance().getCurrentUser().getUid()).child("contacts").child(emailInput).setValue(true);
                    list.add(email); //Add the email the list
                }
            }

            //Do what you need to do with list
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...