亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Firebase 數據不斷循環

Firebase 數據不斷循環

慕尼黑5688855 2023-08-04 15:14:36
我正在嘗試在用戶按下途中按鈕后將我的 mcustDelivery 狀態從 Firebase 中的“接受”更新為“途中”。但每當我按下途中按鈕時,firebase 都會更改為“途中”并立即更改回“接受”。這是我的航路按鈕的 setOnClickListener。OrderStatus.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() {@Overridepublic 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}@Overridepublic void onCancelled(@NonNull DatabaseError databaseError) {    Toast.makeText(getApplicationContext(),"not updates",Toast.LENGTH_LONG).show();}});} });
查看完整描述

1 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

您使用 addValueEventListener 來接受您要更改同一引用中的值的請求很簡單。于是addValueEventListener觸發起來,再次改變值來接受。

private DatabaseReference mDatabase;

mDatabase = FirebaseDatabase.getInstance().getReference();? ??

mDatabase.child(getKey()).child("mcustDeliveryStatus").setValue("Accepted")

或簡單修復將 addValueEventListener 更改為 addListenerForSingleValueEvent


查看完整回答
反對 回復 2023-08-04
  • 1 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號