Клиент не хранит базу данных в реальном времени в базе данных Firebase, но его можно увидеть при аутентификации - PullRequest
0 голосов
/ 31 декабря 2018

Клиент не хранит базу данных в реальном времени в Firebase, но его можно увидеть при аутентификации. Вот мой код, пожалуйста, проверьте, что не так в моем коде

public class CustomerLoginActivity extends AppCompatActivity
{

   private EditText mEmail,mPassword;

   private Button mLogin,mRegisteration;

   private FirebaseAuth mAuth;
   private FirebaseAuth.AuthStateListener firebaseAuthListener;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_customer_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(CustomerLoginActivity.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);
    mRegisteration = (Button) findViewById(R.id.registeration);

    mRegisteration.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            final String email = mEmail.getText().toString();
            final String password = mPassword.getText().toString();
            mAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(CustomerLoginActivity.this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {

                    if (!task.isSuccessful()){
                        Toast.makeText(CustomerLoginActivity.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("Customers").child(user_id);
                        current_user_db.setValue(true);
                    }
                }
            });
        }
    });

    mLogin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            final String email = mEmail.getText().toString();
            final String password = mPassword.getText().toString();
            mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(CustomerLoginActivity.this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {


                    if (!task.isSuccessful()){
                        Toast.makeText(CustomerLoginActivity.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);
}
}

Клиент не хранит базу данных в реальном времени в Firebase, номожно увидеть в аутентификации здесь ниже мой код, пожалуйста, проверьте, что не так в моем коде

1 Ответ

0 голосов
/ 01 января 2019

Как сказал @FrankvanPuffelen, если все, что вы делаете, правильно, и вы все равно не можете видеть данные в базе данных Firebase, то, скорее всего, вы упускаете правила данных в своей базе данных Firebase.

Это то, что не защищено, правила чтения и записи разрешены для Firebase:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

По умолчанию для правил Firebase установлено следующее:

{
  "rules": {
    ".read": false,
    ".write": false
  }
}

Ниже приводится наборправила только для аутентифицированного пользователя, который может писать / читать из базы данных:

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

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

Здесьсписок правил для различных целей в базе данных Firebase .

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