簡體   English   中英

如何停止從Firebase檢索數據?

[英]How to stop retrieve data from Firebase?

加載后,停止從Firebase檢索數據。

這是我的代碼:

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);
    }
}

使用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);
        }

看看這個答案https://stackoverflow.com/a/41579337/5868103

如果要一次讀取整個數據,請使用addListenerForSingleValueEvent而不是addValueEventListener。

或者,如果您想從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);
    }

要刪除監聽器,

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM