我正在从Firestore检索数据,其中每个文档存储2个字段,一个是日期,另一个是秒。我想对数据进行分组,以使每个日期的秒数加起来。
例如,我有3个文档和2个具有相同的日期但不同的秒数:
date: 21-04-2019,
timeTrained: 86
第二个文档:
date: 21-04-2019,
timeTrained: 24
第三个文档:
date: 20-04-2019,
timeTrained: 120
所以我想在第一个和第二个文档中添加timeTrained
,因为它们具有相同的日期,所以我的Firestore集合中将有很多这样的文档,因此我需要使其动态而不是硬编码。
以下图片提供了存储在Firestore中的数据的快照。
答案 0 :(得分:0)
要解决此问题,请使用以下代码行:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference userExercisesRef = rootRef.collection("userExercises");
Query query = userExercisesRef.whereEqualTo("date", "21-04-2019");
query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
long count = 0;
for (QueryDocumentSnapshot document : task.getResult()) {
long timeTrained = document.getLong("timeTrained");
count = count + timeTrained;
}
Log.d(TAG, String.valueOf(count));
}
}
});
根据您提供的数据,对于21-04-2019
,logcat中的结果将是:
110