简体   繁体   English

如何停止从Firebase检索数据?

[英]How to stop retrieve data from Firebase?

Stop retrieve data from Firebase after its loaded. 加载后,停止从Firebase检索数据。

This is my code: 这是我的代码:

databaseReference.child("SHARE").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot ds : dataSnapshot.getChildren()) {
            information spacecraft = ds.getValue(information.class);
            spacecrafts.add(spacecraft);
        }
        adapter adapterView= new adapter(MainActivity.this, spacecrafts);
        gridView.setAdapter(adapterView);
    }
}

Use addListenerForSingleValueEvent() 使用addListenerForSingleValueEvent()

databaseReference.child("SHARE").addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot ds : dataSnapshot.getChildren()) {

                information spacecraft = ds.getValue(information.class);
                spacecrafts.add(spacecraft);

            }
            adapter adapterView= new adapter(MainActivity.this, spacecrafts);
            gridView.setAdapter(adapterView);
        }

have a look on this answer https://stackoverflow.com/a/41579337/5868103 看看这个答案https://stackoverflow.com/a/41579337/5868103

Use addListenerForSingleValueEvent instead of addValueEventListener if you want to read the whole data once. 如果要一次读取整个数据,请使用addListenerForSingleValueEvent而不是addValueEventListener。

Or if you want to get update from onDataChange, you can remove the listner, 或者,如果您想从onDataChange获取更新,则可以删除列表器,

 ValueEventListener eventListener = databaseReference.child("SHARE").addValueEventListener(new   ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot ds : dataSnapshot.getChildren()) {

            information spacecraft = ds.getValue(information.class);
            spacecrafts.add(spacecraft);

        }
        adapter adapterView= new adapter(MainActivity.this, spacecrafts);
        gridView.setAdapter(adapterView);
    }

To remove the listener, 要删除监听器,

databaseReference.child("SHARE").removeEventListener(eventListener);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM