在Android中,使用Firestore进行多值查询并按时间戳降序排序的解决方法如下所示:
implementation 'com.google.firebase:firebase-firestore:21.4.3'
FirebaseFirestore db = FirebaseFirestore.getInstance();
// 获取messages集合的引用
CollectionReference messagesRef = db.collection("messages");
// 创建查询,多值查询和按时间戳降序排序
Query query = messagesRef.orderBy("timestamp", Query.Direction.DESCENDING);
// 执行查询
query.get().addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
if (task.isSuccessful()) {
// 处理查询结果
QuerySnapshot querySnapshot = task.getResult();
for (QueryDocumentSnapshot document : querySnapshot) {
// 处理每个文档
String message = document.getString("message");
long timestamp = document.getLong("timestamp");
Log.d(TAG, "Message: " + message + ", Timestamp: " + timestamp);
}
} else {
// 处理查询失败情况
Log.d(TAG, "Error getting documents: ", task.getException());
}
}
});
在以上代码中,我们首先获取Firestore的集合引用,然后使用orderBy方法按时间戳字段降序排序。最后,我们使用get方法执行查询,并使用addOnCompleteListener方法处理查询结果。
注意:以上代码中的"TAG"是一个用于日志输出的常量,你可以根据需要修改或删除它。
希望以上代码示例能帮助到你!