首页 > 解决方案 > Android Studio 向 Firebase 发送数据,但 Firebase 数据库中没有保存数据

问题描述

与 Firebase 的连接是成功的,我确实有所有必要的导入。此代码中是否存在逻辑错误?

数据会发送到 Firebase,但不会存储到数据库中。我的数据库命名是正确的。如下->数据库名称->2children(Customers)(Riders)。拼写已经过双重检查。

public class DriverLoginActivity 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(DriverLoginActivity.this, MapActivity.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(DriverLoginActivity.this, new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            if(!task.isSuccessful()){
                                Toast.makeText(DriverLoginActivity.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("Drivers").child(user_id);
                                current_user_db.setValue(true);
                            }
                        }
                    });
                }
            });

            mLogin.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    final String email = mEmail.getText().toString();
                    final String password = mPassword.getText().toString();
                    mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(DriverLoginActivity.this, new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            if(!task.isSuccessful()){
                                Toast.makeText(DriverLoginActivity.this, "sign in error", Toast.LENGTH_SHORT).show();
                            }
                        }
                    });

                }
            });
        }


        @Override
        protected void onStart() {
            super.onStart();
            mAuth.addAuthStateListener(firebaseAuthListener);
        }
        @Override
        protected void onStop() {
            super.onStop();
            mAuth.removeAuthStateListener(firebaseAuthListener);
        }
    }




  [1]: https://i.stack.imgur.com/xMWqS.jpg

标签: javaandroidfirebasefirebase-realtime-database

解决方案


代码似乎还可以。用户注册成功了吗??如果是,请检查您的数据库规则。如果不是,请检查您的注册码。


推荐阅读