2017-12-01 13 views
0

私はそのエラーにアンドロイド - そのようなインスタンスフィールド

アンドロイド取得していますいくつかの理由 - そのようなインスタンスフィールド:databaseref

を私が間違っているところ、私は見つけることができません。私はちょうど私のデータベースにすべてのユーザーを得るために参照を取得したい。

コード:

私が間違ってやっている何
public class FirebaseMethodsHelper { 
    private FirebaseDatabase databaseRef; 
    private ArrayList<User> usersList; 


    public List<User> getAllUsersFromDB(FirebaseUser currentUser){ 
     databaseRef = FirebaseDatabase.getInstance(); 
     usersList = null; 
     if(currentUser != null) { 
      databaseRef.getReference(Params.USERS).addListenerForSingleValueEvent(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 
        for (DataSnapshot snapshot : dataSnapshot.getChildren()) { 
         usersList.add(snapshot.getValue(User.class)); 
        } 
       } 

       @Override 
       public void onCancelled(DatabaseError databaseError) { 

       } 
      }); 

      return usersList; 
     } 
     return null; 
    } 
} 

+0

が、これはアプリを再構築するか、Androidのメーカーを再起動することで解決されました。この回答を参照してください:https://stackoverflow.com/questions/28646999/no-such-instance-field –

答えて

0

変更この:これに

databaseRef.getReference(Params.USERS).addListenerForSingleValueEvent(new ValueEventListener() 

:いくつかのケースでは

databaseRef.getReference().child(Params.USERS).addListenerForSingleValueEvent(new ValueEventListener() 
+1

これはどのように違いがありますか?私が見る限り、2つのスニペットは同じリファレンスにリスナーを付けます。 –

関連する問題