Ich möchte alle Herausforderungen in Firestore und Schleife über das Ergebnis erhalten, um es zu einer ArrayList hinzuzufügen.Null Objektreferenz in Firebase Ergebnisschleife
db.collection("challenges")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (DocumentSnapshot document : task.getResult()) {
if (document.exists()) {
Log.d(TAG, document.getId() + " => " + document.getData());
Error-> Challenge challenge = document.toObject(Challenge.class);
Log.d(TAG, challenge.getUid() + " => " + challenge.getText());
challengeList.add(document.getData().toString());
}
}
challengeListView.setAdapter(challengeArrayAdapter);
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
}
});
Fehler ist:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Constructor.newInstance(java.lang.Object[])' on a null object reference
Line:
Challenge challenge = document.toObject(Challenge.class);
Das Protokoll mit Log.d(TAG, document.getId() + " => " + document.getData());
arbeitet.
Referenz: https://firebase.google.com/docs/firestore/query-data/get-data#get_all_documents_in_a_collection
Das ist meine meine Challenge Class ist:
public class Challenge {
private Date createdAt;
private Date changedAt;
private String uid;
private String text;
private double longitude;
private double latitude;
public Challenge(String uid, String text, double longitude, double latitude) {
Date currentDate = new Date();
this.createdAt = currentDate;
this.changedAt = currentDate;
this.uid = uid;
this.text = text;
this.longitude = longitude;
this.latitude = latitude; }
public Date getCreatedAt() { return createdAt; }
public Date getChangedAt() { return changedAt; }
public String getUid() { return uid; }
public String getText() { return text; }
public double getLongitude() { return longitude; }
public double getLatitude() { return latitude;}
}
aber ich möchte alle Daten in Herausforderungen abfragen. Gibt es eine Möglichkeit, dies zu tun, ohne ein bestimmtes Dokument auszuwählen? – mnlfischer
Bitte sehen Sie meine aktualisierte Antwort. –
auch bearbeiten Kommentar – mnlfischer