首页 > 解决方案 > 如何在DataChange Firebase上返回数据

问题描述

尝试返回数据onDatachange,我知道它返回的原因null。我使用适配器解决了它。

但我在同一个类中也有一个名为“FindWord”的方法。如何从onDataChange这种方法中获取数据?

public ArrayList<Word2> AllWords(final CardAdapter4_4 adapter){

        databaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                words.clear();

                for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {

                    Word2 word= new Word2();
                    word.setMean(postSnapshot.child("mean").getValue(String.class)) ;
                    word.setName(postSnapshot.child("name").getValue(String.class));
                    word.setControlled(postSnapshot.child("controlled").getValue(Boolean.class));
                    word.setAdded_by(postSnapshot.child("added_by").getValue(String.class));
                    word.setKey(postSnapshot.child("key").getValue(String.class));
                    words.add(word);
                }
                count=words.size();
                adapter.notifyDataSetChanged();
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });
        return words;
    }
public Word2 FindWord( String kelime){
        Word2 w=null;
        ArrayList<Word2> array = AllWords();
        for(int i=0;i<array.size();i++){
            if(kelime.equals(array.get(i).getName())){
                w=array.get(i);
            }
        }
        if(w!=null){
            return w;}
        else return null;
    }

标签: javaandroidfirebasefirebase-realtime-database

解决方案


推荐阅读