gpt4 book ai didi

java - Firebase 数据不断循环

转载 作者:行者123 更新时间:2023-12-02 01:19:32 26 4
gpt4 key购买 nike

在用户按下途中按钮后,我尝试将 Firebase 中的 mcustDelivery 状态从“接受”更新为“途中”。但每当我按下途中按钮时,firebase 都会更改为“途中”并立即更改回“接受”。这是我的航路按钮的 setOnClickListener。

订单状态.Java

     enroute.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDatabase.child(key).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
dataSnapshot.getRef().child("mcustDeliveryStatus").setValue("Enroute");
enroute.setImageResource(R.drawable.greenenroute);
deliver.setImageResource(R.drawable.bluedeliver);
enroute.setMaxWidth(266);
enroute.setMaxHeight(150);
deliver.setMaxWidth(266);
deliver.setMaxHeight(150);


}

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

}
});


}
});

下面的代码是我在 ViewNewOrder.java 上获取“已接受”状态的位置

 accept.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

mDatabase.child(getKey()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
dataSnapshot.getRef().child("mcustDeliveryStatus").setValue("Accepted");
Intent orderStatus = new Intent(ViewOrderRequest.this, orderStatus.class);
startActivity(orderStatus);
Toast.makeText(getApplicationContext(),"notification sent to customers",Toast.LENGTH_LONG).show();


//start new activity show root map

}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(getApplicationContext(),"not updates",Toast.LENGTH_LONG).show();
}

});

}});

最佳答案

很简单,您已使用 addValueEventListener 来接受您要更改同一引用中的值的请求。于是addValueEventListener触发起来,再次改变值来接受。写作时,数据引用firebase docs for read and write

private DatabaseReference mDatabase;
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child(getKey()).child("mcustDeliveryStatus").setValue("Accepted")

或简单修复将 addValueEventListener 更改为 addListenerForSingleValueEvent

关于java - Firebase 数据不断循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57978427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com