我正在从 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 中存储的数据的快照。
最佳答案
要解决此问题,请使用以下代码行:
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
关于java - 对 Firebase Firestore Android 中的数据执行添加/操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55778794/