Я не могу добавить пользователя в Firebase Authetnication с помощью Android Studio Java - PullRequest
0 голосов
/ 08 мая 2020

Я просмотрел несколько руководств Youtube, прочитал несколько веток здесь и попытался asp просмотреть документацию на странице Firebase, но мне просто кажется, что у меня это полностью не работает. Я пытаюсь просто добавить написанного вручную (в исходном коде) пользователя, чтобы проверить это, но это не работает. Пытался написать «тост» в обоих условиях «если», но ни один из тостов не всплывает. Я могу вручную добавить пользователя в firebase через их страницу, и когда я сделал это и попытался добавить того же пользователя, я думаю, что однажды у меня был тост «созданный пользователем», но когда я попытался снова, я ничего не получил, поэтому я даже не знаю.

Edit: Извините, если я ошибся, но я не пытаюсь добавить в базу данных, я хочу добавить к аутентификации, так как я получил часть с базами данных, но аутентификация не работает.

Edit2: Либо это было что-то с кешем / AVD, либо я не знаю, но после разрешения inte rnet (в манифесте) кажется, что он работает. Не знаю, помогло ли это, но я пометил ответ, под которым комментарий, чтобы добавить эту вещь, является решением.

Мой код:

public class MainActivity extends AppCompatActivity
{
    FirebaseAuth mAuth;
    FirebaseDatabase database;
    DatabaseReference myRef;
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);;
        mAuth = FirebaseAuth.getInstance();
        database = FirebaseDatabase.getInstance();
        Button buttonLogin;
        buttonLogin = findViewById(R.id.loginLoginButton);
        buttonLogin.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                mAuth.createUserWithEmailAndPassword("example@example.com", "exempliore852").addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>()
                {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task)
                    {
                        if (task.isSuccessful())
                        {
                            Toast.makeText(MainActivity.this, "User created", Toast.LENGTH_LONG).show();
                        }
                        else
                        {
                            Toast.makeText(MainActivity.this, "Not successful!", Toast.LENGTH_LONG).show();
                        }
                    }
                });

            }
        });
  }

Я постоянно получаю эта ошибка в logcat:

2020-05-08 19:13:41.036 1791-2322/? E/GnssHAL_GnssInterface: gnssSvStatusCb: a: input svInfo.flags is 8

Полный logcat ошибок (поскольку Verbose logcat слишком велик для pastebin): https://pastebin.com/2icthFwN

Что я делаю это неправильно?

Изменить: извините, если я ошибся, но я не пытаюсь добавить в базу данных, я хочу добавить к аутентификации, так как я получил часть с базами данных, но аутентификация не работает .

Ответы [ 2 ]

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

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

 mAuth.createUserWithEmailAndPassword(edtEmail.getText().toString(), edtPassword.getText().toString())
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {

                        if (task.isSuccessful()) {

                            Toast.makeText(SignUpActivity.this, "Signing up successful.",
                                    Toast.LENGTH_SHORT).show();

                            // method to get username stored in database
                            FirebaseDatabase.getInstance().getReference()
                                    .child("users").child(task.getResult().getUser().getUid())
                                    .child("username")
                                    .setValue(edtUsername.getText().toString());

                            UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
                                    .setDisplayName(edtUsername.getText().toString())
                                    .build();

                            FirebaseAuth.getInstance().getCurrentUser().updateProfile(profileUpdates)
                                    .addOnCompleteListener(new OnCompleteListener<Void>() {
                                        @Override
                                        public void onComplete(@NonNull Task<Void> task) {

                                            if (task.isSuccessful()) {

                                                Toast.makeText(SignUpActivity.this, "User " +
                                                        edtUsername.getText().toString() + " updated",
                                                        Toast.LENGTH_SHORT).show();
                                            }
                                        }
                                    });

                            transitionToMainActivity();
                        } else {

                            Toast.makeText(SignUpActivity.this, "Signing up failed.",
                                    Toast.LENGTH_SHORT).show();
                        }
                    }
                });
0 голосов
/ 08 мая 2020

Ваш код вообще ничего не добавляет в базу данных реального времени. Это просто создание учетной записи пользователя с помощью Firebase Authentication, который представляет собой другой продукт. Вы можете увидеть учетные записи пользователей в консоли Firebase в области продукта «Аутентификация».

Если вы хотите добавить данные пользователя в базу данных, вам нужно будет написать это самостоятельно.

...