FireBase OnDataChange не переходит к следующему действию - PullRequest
1 голос
/ 05 апреля 2020

У меня есть некоторые проблемы. Я хочу получить значение состояния для заказа, во-первых, когда Заказчик создает заказ, значение будет добавлено в базу данных «Ожидание», после чего клиент будет ждать, пока Водитель примет заказ, затем изменит значение с «Ожидание». на «Принято».


public class C_Offers extends AppCompatActivity {
    String OrderID;
    String phoneNO;
    String State = null;
    DatabaseReference databaseReference;

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


        Bundle bundle = getIntent().getExtras();
        if (bundle != null) {
            phoneNO = bundle.getString("Phone");
            OrderID = bundle.getString("OrderID");
        }
        databaseReference = FirebaseDatabase.getInstance().getReference().child("Users").child("Customer").child(phoneNO).child("Order").child(OrderID);
        databaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                State = dataSnapshot.child("State").getValue(String.class);
                Toast.makeText(C_Offers.this, "State : "+State, Toast.LENGTH_SHORT).show();
                if (State.equals("Accepted")) {
                    startActivity(new Intent(C_Offers.this, C_Order.class));
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

    }

}

при использовании этого

Toast.makeText(C_Offers.this, "State : "+State, Toast.LENGTH_SHORT).show();

выведет «Ожидание», после изменения значение на стороне водителя изменится и напечатает «Принято»

Точная проблема заключается в этом

if (State.equals("Accepted")) {
   startActivity(new Intent(C_Offers.this, C_Order.class));
}

Сначала не читайте и не закрывайте приложение, go для создания макета. Мне нужно проверить, изменилось ли значение Firebase на «Принят» или нет, если изменилось go к новой деятельности это то, что я хочу

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