База данных Firebase не обновляется в Android - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть android студийное кодирование для регистрации и база данных firebase. Когда я ввожу данные для регистрации, эти значения не обновляются в базе данных Firebase.

enter image description here

Но аутентификация базы данных обновлена.

enter image description here

Здесь мой код для регистрации.

public class DriverLogin extends AppCompatActivity {

    private EditText mEmail, mPassword;
    private Button mLogin, mRegistration;

    private FirebaseAuth mAuth;
    private FirebaseAuth.AuthStateListener firebaseAuthListener;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_driver_login);

        mAuth = FirebaseAuth.getInstance();

        firebaseAuthListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
                if (user != null){
                    Intent intent = new Intent(DriverLogin.this, MapsActivity.class);
                    startActivity(intent);
                    finish();
                    return;
                }
            }
        };

        mEmail = (EditText) findViewById(R.id.email);
        mPassword = (EditText) findViewById(R.id.password);

        mLogin =  (Button) findViewById(R.id.Login);
        mRegistration =  (Button) findViewById(R.id.Registration);

        mRegistration.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final String email = mEmail.getText().toString();
                final String password = mPassword.getText().toString();

                mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(DriverLogin.this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if(!task.isSuccessful()){
                            Toast.makeText(DriverLogin.this, "Sign up Error!", Toast.LENGTH_SHORT).show();
                        }else {
                            String user_id = mAuth.getCurrentUser().getUid();
                            DatabaseReference current_user_db = FirebaseDatabase.getInstance().getReference().child("Users").child("Driver").child(user_id);
                            current_user_db.setValue(true);
                        }
                    }
                });
            }
        });
}

Ответы [ 2 ]

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

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

  1. Go к вашему Firebase Console, затем go к Database
  2. Подведите курсор к вашему root. В вашем случае bit-driver-app и нажмите +. Это add Child
  3. Теперь, я думаю, вы хотите сделать Driver со многими пользователями UID. Поэтому на Name просто наберите Driver без значения. Затем нажмите + еще раз
  4. Теперь я думаю, что именно здесь вы хотите, чтобы ваш user_id
  5. И, возможно, с некоторыми из variable, такими как name, et c

My DB Structure Suggestion

Итак, в основном вы не можете add child что-то, что имеет value. В вашем случае ваш Driver имеет value=true, у него не может быть ребенка и он не будет обновляться

0 голосов
/ 11 апреля 2020

Спасибо всем, кто помог мне здесь с моей проблемой.

Я нашел ответ и отправляю его, может кто-нибудь получит помощь в будущем.

Правила базы данных Firebase должен быть установлен как ниже.

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...