Firebase 值事件侦听器不起作用

时间:2021-04-29 11:28:33

标签: android firebase firebase-realtime-database

我的 Value 事件侦听器可以正常工作,但是一旦我删除了 onPauseonStop 中的侦听器,即使在关闭它之后启动应用程序,值事件侦听器也无法正常工作。

>
public class Payment extends AppCompatActivity implements IppoPayListener {


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

       
     
        proceedButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                    placeOrder();
            }
        });
    }


    
    private void placeOrder() {

        cartDbRef=FirebaseInit.getDatabase().getReference().child("USERS/"+phonenumber+"/cart");
        cartlistener=cartDbRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                for(DataSnapshot dataSnapshot:snapshot.getChildren()){
                    String segment=dataSnapshot.child("segment").getValue(String.class);
                    int quantity=dataSnapshot.child("userquantity").getValue(Integer.class);
                    
                }
            }

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

            }
        });
       
    }

    @Override
    public void onStop() {
        super.onStop();
        if (cartDbRef != null && cartlistener!=null) {
            cartDbRef.removeEventListener(cartlistener);
        }
    }
    @Override
    public void onPause() {
        super.onPause();
        super.onStop();
        if (cartDbRef != null && cartlistener != null) {
            cartDbRef.removeEventListener(cartlistener);
        }
    }
}

编辑

当点击调用 placeOrder() 时,cartDbRef 后面的代码甚至没有执行,但是当我没有删除 onPauseonResume

中的 cartListener 时它可以工作

0 个答案:

没有答案