无法从具有void结果类型的方法返回值

Gil*_*ger -1 java android firebase

我试图从Firebase数据库中获取一个特定的值,之前我做过,但现在当我尝试一些不同的东西时,它说"无法从具有void结果类型的方法返回值".

我猜我错过了一些编程规则,因为我是一名新的Java程序员.

这是我的代码:

public int getVotesForEvent(final String event_title) {
    firebaseRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.child("Votes").exists()) {

                for (DataSnapshot event : dataSnapshot.child("Votes").getChildren()) {
                    String event_title2 = event.getKey();
                    if (event_title2.equals(event_title)) {
                        int count=Integer.parseInt(event.getValue().toString());
                        return count;

                    }


                }

            }
            else {
                int count = 0 ;
                return count;
            }
        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {

        }
    });
}
Run Code Online (Sandbox Code Playgroud)

错误出现在我试图返回计数的地方.

读完注释后,这是我的代码,现在该方法不会影响声明的变量计数,它保持0:

  int count=0;
public int getVotesForEvent(final String event_title) {

    firebaseRef.addValueEventListener(new ValueEventListener() {

        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            if (dataSnapshot.child("Votes").exists()) {
                boolean flag=false;
                for (DataSnapshot event : dataSnapshot.child("Votes").getChildren()) {
                    String event_title2 = event.getKey();
                    if (event_title2.equals(event_title)) {
                        flag=true;
                        Toast.makeText(EventInfo.this, ""+Integer.parseInt(event.child("event_votes").getValue().toString()), Toast.LENGTH_SHORT).show();
                        count=Integer.parseInt(event.child("event_votes").getValue().toString());


                    }


                }
                if(flag!=true)
                {
                    count=0;
                }

            }
            else
            {
                count=0;
            }

        }



        @Override
        public void onCancelled(FirebaseError firebaseError) {

        }

    });
    return count;

}
Run Code Online (Sandbox Code Playgroud)

我现在做错了什么?

Pra*_*ani 5

在java方法中void意味着该方法不返回任何内容.

onDataChange返回类型是void,你不能返回值count.

count如果需要,请删除return语句并尝试在字段中保存值