Как проверить значение в базе данных в реальном времени (ON / OFF) - PullRequest
0 голосов
/ 18 ноября 2018

Как я могу в этом коде

    @Override
protected void onStart() {
    super.onStart();
    //if the user is already signed in
    //we will close this activity
    //and take the user to profile activity
    if (mAuth.getCurrentUser() != null) {
        finish();
        startActivity(new Intent(this, ActivitySplash.class));
    }

}

проверьте, установлен ли дочерний элемент (userId) на ON / OFF, и если ON, то мы запускаем код

    if (mAuth.getCurrentUser() != null) {
    finish();
    startActivity(new Intent(this, ActivitySplash.class));
}

если ВЫКЛ, то мы показываем определенную активность.

Моя база данных My DB structure

1 Ответ

0 голосов
/ 18 ноября 2018

Как сказал @FrankvanPuffelen, вам следует потратить некоторое время на чтение документации, это поможет вам самим написать код, но я все же расскажу вам кое-что здесь. Это должно прояснить ситуацию.

Чтение из базы данных выполняется путем правильной ссылки на нужный узел из базы данных и последующего использования правильного eventListener. Существует 3 типа eventListeners подарок, singleValueEventListener, valueEventListener и childEventListener.

Подробнее о каждом из них читайте в документации. Этот ответ также может помочь вам понять childEventListeners.

Чтобы получить значение узла status, вам нужно последовательно пройти через родительские узлы вашей базы данных, которые users и uid со значением nfe....

Так что в коде это будет выглядеть примерно так:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("users").child(uid);

// uid has the value nfe...


ref.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                String status = dataSnapshot.child("status").getValue(String.class);
             // compare the value of status here and do what you want    
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                Log.d(TAG, "onCancelled", databaseError.toException());
            }


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