2017-12-01 2 views
0

Aus irgendeinem Grund bin ich immer, dass FehlerAndroid - Eine solche Instanz Feld

Android - keine solche Instanz Feld: databaseref

Ich kann nicht finden, wo ich falsch bin. Ich möchte nur meine Datenbank abrufen, um alle Benutzer zu erhalten.

Der Code:

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

Was mache ich falsch? diese

+0

In einigen Fällen ist dies durch den Wiederaufbau der App oder Neustarten Android Studio gelöst. Siehe diese Antwort: https://StackOverflow.com/Questions/28646999/No-Such-Instance-field –

Antwort

0

Wechsel:

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

dazu:

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

Wie macht dies einen Unterschied? Soweit ich sehen kann, werden die beiden Snippets einen Listener an die gleiche Referenz anhängen. –

Verwandte Themen