0
私のアクティビティが開いているときにこの関数が呼び出されます。ここで私は最大のタイムスタンプ文書をフェッチだし、その後、私は、パラメータ文書の日付とクエリを送信すると、「スタート」再び私の新しい関数を呼び出していてandroidプロジェクトのFireStoreで 'Invalid Query'が発生しました
public void startListening() {
final Query query = collectionReference;
listenerRegistration = query.orderBy("timestamp", Query.Direction.DESCENDING).limit(1).addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(QuerySnapshot documentSnapshots, FirebaseFirestoreException e) {
if (e != null)
return;
List<DocumentChange> documentChanges = documentSnapshots.getDocumentChanges();
if (documentSnapshots.getMetadata().isFromCache())
return;
for (DocumentChange documentChange : documentChanges) {
if (documentChange.getType() == DocumentChange.Type.ADDED) {
start(documentChange.getDocument().getDate("timestamp"), query);
}
}
}
});
}
。
private void start(Date date, Query query) {
query.whereGreaterThan("timestamp", date).addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(QuerySnapshot documentSnapshots, FirebaseFirestoreException e) {
if (e != null)
return;
List<DocumentChange> documentChanges = documentSnapshots.getDocumentChanges();
for (DocumentChange documentChange : documentChanges) {
if (documentChange.getType() == DocumentChange.Type.ADDED)
fireStoreDocumentListener.onDocumentAdded(documentChange);
}
}
});
}
この関数の最初の行に、my appがクラッシュします。
ログの猫エラー
java.lang.IllegalArgumentExceptionが:無効なクエリ。 nullでは(whereEqualTo()を使用して)等価比較のみを実行できます。
はい、あなたは正しいです、私は日付オブジェクトを参照してください日付がnull.Only日付で、なぜ私にはわからないnull.Butですオブジェクトは@フランクが足りない –