Зарегистрировать пользователя - Добавлены поля - PullRequest
0 голосов
/ 09 апреля 2020

Итак, я пытаюсь зарегистрировать пользователя для моего приложения android, в настоящее время оно использует аутентификацию Firebase для регистрации с использованием электронной почты и пароля. Но я пытаюсь добавить имя и поле телефона для регистрации тоже.

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

            // register name/phone/radiogroup


            final String name = nameField.getText().toString();
            final String phone = phoneField.getText().toString();
            final String email = Email.getText().toString();
            final String password = Password.getText().toString();

            if (TextUtils.isEmpty(name)) {
                Toast.makeText(TradesmanLoginActivity.this,
                        "Please enter your Name...", Toast.LENGTH_SHORT).show();
            }

            if (TextUtils.isEmpty(phone)) {
                Toast.makeText(TradesmanLoginActivity.this,
                        "Please enter your Phone Number...", Toast.LENGTH_SHORT).show();
            }

            if (TextUtils.isEmpty(email)) {
                Toast.makeText(TradesmanLoginActivity.this,
                        "Please enter your Email Address...", Toast.LENGTH_SHORT).show();
            }

            if (TextUtils.isEmpty(password)) {
                Toast.makeText(TradesmanLoginActivity.this,
                        "Please enter a Password...", Toast.LENGTH_SHORT).show();
            } else {
                loadingBar.setTitle("Tradesman Registration");
                loadingBar.setMessage("Please wait while we check your credentials...");
                loadingBar.show();

                Auth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(TradesmanLoginActivity.this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if (!task.isSuccessful()) {
                            Toast.makeText(TradesmanLoginActivity.this, "sign up error", Toast.LENGTH_SHORT).show();
                            loadingBar.dismiss();
                        } else {
                            Toast.makeText(TradesmanLoginActivity.this, "Tradesman Registration Successful!", Toast.LENGTH_SHORT).show();
                            loadingBar.dismiss();

                            String name = nameField.getText().toString();
                            String phone= phoneField.getText().toString();

                            HashMap<String,String> user=new HashMap<>();
                            user.put("Name",name);
                            user.put("Phone",phone);


                            String user_id = Auth.getCurrentUser().getUid();
                            DatabaseReference current_user_db = FirebaseDatabase.getInstance().getReference().child("Users").child("Tradesman").child(user_id).child("Name");
                            current_user_db.setValue(email);
                        }
                    }
                });
            }
        }
    });

Я создал поля et c, я просто борюсь с частью помещения имени и телефона в базу данных firebase.

В настоящее время он регистрирует пользователя и устанавливает имя для электронной почты пользователей. Я хочу сохранить имя и телефон как дочерние элементы идентификатора пользователя (который они вводят при регистрации), а не просто адрес электронной почты

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Вы указали неправильное значение на setValue. Заменить на это.

 DatabaseReference current_user_db = FirebaseDatabase.getInstance().getReference().child("Users").child("Tradesman").child(user_id);
 current_user_db.setValue(user);
1 голос
/ 09 апреля 2020

Если вы хотите создать узел под /Users/Tradesman/$uid с именем и номером телефона пользователя, это выглядело бы так:

Auth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(TradesmanLoginActivity.this, new OnCompleteListener<AuthResult>() {
    @Override
    public void onComplete(@NonNull Task<AuthResult> task) {
        if (!task.isSuccessful()) {
            Toast.makeText(TradesmanLoginActivity.this, "sign up error", Toast.LENGTH_SHORT).show();
            loadingBar.dismiss();
        } else {
            Toast.makeText(TradesmanLoginActivity.this, "Tradesman Registration Successful!", Toast.LENGTH_SHORT).show();
            loadingBar.dismiss();

            String name = nameField.getText().toString();
            String phone= phoneField.getText().toString();

            HashMap<String,String> user=new HashMap<>();
            user.put("Name",name);
            user.put("Phone",phone);

            String user_id = Auth.getCurrentUser().getUid();
            DatabaseReference current_user_db = FirebaseDatabase.getInstance().getReference().child("Users/Tradesman").child(user_id);
            current_user_db.setValue(user);
        }
    }
});

Самое большое изменение в том, что вы пишете только email там, и обновление выше записывает всю карту с именем и номером телефона.

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