java - Firebase OnDataChange 未过渡到下一个活动
问题描述
我有一些问题。我想检索订单状态的值,首先,当客户创建订单时,该值将添加到火力库“待处理”之后,客户将等到司机接受订单,然后将值从“待处理”更改到“接受”。
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();
将打印“Pending”,更改驱动程序端的值后将更改并打印“Accepted”
确切的问题在这个里面
if (State.equals("Accepted")) {
startActivity(new Intent(C_Offers.this, C_Order.class));
}
首先不读取并关闭应用程序,返回布局我需要检查 Firebase 的值是否更改为“已接受”,如果更改则转到新活动,这是我想要的
解决方案
推荐阅读
- java - 新建时
JNI中C++代码中的数组如何释放 数组的缓冲区? - php - 如何将 MySQL 中的 DATE 和 TIME 转换为时区?
- java - 如何在编辑/键入时阅读 eclipse 编辑器的内容?
- java - 为什么数据流不打印转换?
- sql - 多列顺序会杀死 postgresql 性能,有什么办法解决吗?
- mysql - 带有 where、AND 和 OR 的 SQL Select 语句无法正常工作
- ios - 使用 UICollectionViewCell 中的按钮,如何获取特定单元格的内容细节?
- java - java类销毁的另一个类
- python - Django rest 框架并使用 source 关键字获取序列化器值
- java - 在哪里放置相机的请求权限?