Как получить один и тот же идентификатор в Firebase Auth и FireBase - базы данных в реальном времени? - PullRequest
0 голосов
/ 19 октября 2019

Как получить один и тот же идентификатор для базы данных аутентификации firebase и базы данных реального времени firebase? Когда пользователь регистрирует свою учетную запись, он получает свой идентификатор в базе данных, но потом я понял, что идентификатор отличается? Как убедиться, что у меня одинаковый идентификатор для обеих баз данных? Различный идентификатор

//create customer
firebaseAuth.createUserWithEmailAndPassword(email, password)
        .addOnCompleteListener(RegisterActivity.this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()) {
                    authData = firebaseAuth.getUid();
                    String id = databaseReference.push().getKey();
                    Customer info = new Customer(id, name, email, address, telephone_number);
                    FirebaseDatabase.getInstance().getReference("Customer")
                            .child(Objects.requireNonNull(FirebaseAuth.getInstance().getCurrentUser()).getUid())
                            .setValue(info).addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {
                            regProgressBar.setVisibility(View.VISIBLE);
                            Toast.makeText(RegisterActivity.this, "Registration Complete", Toast.LENGTH_SHORT).show();
                            startActivity(new Intent(getApplicationContext(), MainActivity.class));
                        }
                    });
                }
            }
        });


 FirebaseDatabase.getInstance().getReference("Customer")
                                            .child(Objects.requireNonNull(FirebaseAuth.getInstance().getCurrentUser()).getUid())

Я пытался заменить приведенную выше кодировку на этот

 FirebaseDatabase.getInstance().getReference("Customer")
                                            .child(id)

same id where i want to achieve

Я получилс тем же идентификатором, но затем я сталкиваюсь с другой проблемой, при которой активность моего профиля не может быть отображена

java.lang.NullPointerException: попытка чтения из поля 'java.lang.String com.example.gerobokgo.Model. Customer.name 'для нулевой ссылки на объект

, поэтому я решил изменить первую кодировку обратно.

1 Ответ

0 голосов
/ 19 октября 2019

Несмотря на то, что я уже решил эту проблему

Просто нужно удалить String id = databaseReference.push().getKey(); и изменить FirebaseDatabase.getInstance().getReference("Customer").child(Objects.requireNonNull(FirebaseAuth.getInstance().getCurrentUser()).getUid()).setValue(info).addOnCompleteListener(new OnCompleteListener<Void>()

на

databaseReference.child(authData).setValue(info).addOnCompleteListener(new OnCompleteListener<Void>()

и все!

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