Как получить из базы данных Firebase данные о конкретном пользователе

Есть база данных Firebase в которую я во время регистрации вбиваю некоторые данные, они попадают в раздел Users под ключом UID из Auth:

public void writeUserToDB(Object data, String currentUser){
        DatabaseReference myRef = mDataBase.child("Users/" + currentUser);
        myRef.setValue(data);
    }


mRegisterBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //Переменные для регистрации
                String id = mDataBase.getKey();
                String name = mName.getText().toString().trim();
                String email = mEmail.getText().toString().trim();
                String password = mPassword.getText().toString().trim();
                String userBinder = mUserBinder.getText().toString().trim();

                //Проверка условий регистрации
                if (TextUtils.isEmpty(email)) {
                    mEmail.setError("Введите почту...");
                    return;
                }
                if (TextUtils.isEmpty(password)) {
                    mEmail.setError("Введите пароль...");
                    return;
                }
                if (TextUtils.isEmpty(name)) {
                    mName.setError("Введите имя...");
                    return;
                }
                if (password.length() < 8) {
                    mPassword.setError("Пароль должен состоять из 8-ми символов.");
                    return;
                }

                //Регистрация пользователя
                fAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                    @Override

                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if (task.isSuccessful()) {
                            User newUser = new User(currentUser, id, name, email, password, userBinder);

                            //Запись нового пользователя в базу данных
                            currentUser = FirebaseAuth.getInstance().getCurrentUser().getUid();
                            writeUserToDB(newUser, currentUser);

                            Toast.makeText(Register.this, "Пользователь зарегистрирован.", Toast.LENGTH_LONG).show();
                            startActivity(new Intent(getApplicationContext(), MainActivity.class));

                        } else {
                            Toast.makeText(Register.this, "Произошла ошибка. Повторите." +
                                    task.getException().getMessage(), Toast.LENGTH_LONG).show();
                        }
                    }
                });
            }
        });

Как загруженные данные выглядят в БД

Необходимо получать эти данные в MainActivity в виде переменных String, чтобы использовать при нажатии другой кнопки. Как в MainActivity и где (в OnCreate или в ButtonListener) написать listener, который получит данные по uid из Firebase и преобразует их в переменные для последующего использования. Вопрос от новичка. Отредактировано:

String uid = FirebaseAuth.getInstance().getUid();
        mDataBase = FirebaseDatabase.getInstance().getReference();
        DatabaseReference uidRef = mDataBase.child("Users/").child(uid);
        ValueEventListener valueEventListener = new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for(DataSnapshot ds : dataSnapshot.getChildren()) {
                    String email = ds.child("email").getValue(String.class);
                    String userBinder = ds.child("userBinder").getValue(String.class);
                    Log.d("TAG", email + "/" + userBinder);
                }
            }
            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                Log.d("TAG", databaseError.getMessage()); //Don't ignore potential errors!
            }
        };
        uidRef.addListenerForSingleValueEvent(valueEventListener);

Ответы (0 шт):