Skip to content

Commit db47dde

Browse files
authored
Merge pull request #380 from firebase/mc/count
Add count snippets for Android
2 parents ae3c9f3 + f440275 commit db47dde

File tree

3 files changed

+75
-1
lines changed

3 files changed

+75
-1
lines changed

firestore/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ dependencies {
4040
implementation 'androidx.multidex:multidex:2.0.1'
4141

4242
// Firestore
43-
implementation "com.google.firebase:firebase-firestore-ktx:24.3.1"
43+
implementation "com.google.firebase:firebase-firestore-ktx:24.4.0"
4444

4545
// Firebase / Play Services
4646
implementation "com.google.firebase:firebase-auth:21.0.8"

firestore/app/src/main/java/com/google/example/firestore/DocSnippets.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
import com.google.android.gms.tasks.Task;
1313
import com.google.android.gms.tasks.Tasks;
1414
import com.google.firebase.Timestamp;
15+
import com.google.firebase.firestore.AggregateQuery;
16+
import com.google.firebase.firestore.AggregateQuerySnapshot;
17+
import com.google.firebase.firestore.AggregateSource;
1518
import com.google.firebase.firestore.CollectionReference;
1619
import com.google.firebase.firestore.DocumentChange;
1720
import com.google.firebase.firestore.DocumentChange.Type;
@@ -1361,4 +1364,42 @@ public void onComplete(@NonNull Task<Void> task) {}
13611364
});
13621365
// [END update_delete_field]
13631366
}
1367+
1368+
public void countAggregateCollection() {
1369+
// [START count_aggregate_collection]
1370+
Query query = db.collection("cities");
1371+
AggregateQuery countQuery = query.count();
1372+
countQuery.get(AggregateSource.SERVER).addOnCompleteListener(new OnCompleteListener<AggregateQuerySnapshot>() {
1373+
@Override
1374+
public void onComplete(@NonNull Task<AggregateQuerySnapshot> task) {
1375+
if (task.isSuccessful()) {
1376+
// Count fetched successfully
1377+
AggregateQuerySnapshot snapshot = task.getResult();
1378+
Log.d(TAG, "Count: " + snapshot.getCount());
1379+
} else {
1380+
Log.d(TAG, "Count failed: ", task.getException());
1381+
}
1382+
}
1383+
});
1384+
// [END count_aggregate_collection]
1385+
}
1386+
1387+
public void countAggregateQuery() {
1388+
// [START count_aggregate_query]
1389+
Query query = db.collection("cities").whereEqualTo("state", "CA");
1390+
AggregateQuery countQuery = query.count();
1391+
countQuery.get(AggregateSource.SERVER).addOnCompleteListener(new OnCompleteListener<AggregateQuerySnapshot>() {
1392+
@Override
1393+
public void onComplete(@NonNull Task<AggregateQuerySnapshot> task) {
1394+
if (task.isSuccessful()) {
1395+
// Count fetched successfully
1396+
AggregateQuerySnapshot snapshot = task.getResult();
1397+
Log.d(TAG, "Count: " + snapshot.getCount());
1398+
} else {
1399+
Log.d(TAG, "Count failed: ", task.getException());
1400+
}
1401+
}
1402+
});
1403+
// [END count_aggregate_query]
1404+
}
13641405
}

firestore/app/src/main/java/com/google/example/firestore/kotlin/DocSnippets.kt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import androidx.annotation.WorkerThread
77
import com.google.android.gms.tasks.Task
88
import com.google.android.gms.tasks.Tasks
99
import com.google.firebase.Timestamp
10+
import com.google.firebase.firestore.AggregateSource
1011
import com.google.firebase.firestore.CollectionReference
1112
import com.google.firebase.firestore.DocumentChange
1213
import com.google.firebase.firestore.DocumentSnapshot
@@ -1130,4 +1131,36 @@ abstract class DocSnippets(val db: FirebaseFirestore) {
11301131
docRef.update(updates).addOnCompleteListener { }
11311132
// [END update_delete_field]
11321133
}
1134+
1135+
fun countAggregateCollection() {
1136+
// [START count_aggregate_collection]
1137+
val query = db.collection("cities")
1138+
val countQuery = query.count()
1139+
countQuery.get(AggregateSource.SERVER).addOnCompleteListener { task ->
1140+
if (task.isSuccessful) {
1141+
// Count fetched successfully
1142+
val snapshot = task.result
1143+
Log.d(TAG, "Count: ${snapshot.count}")
1144+
} else {
1145+
Log.d(TAG, "Count failed: ", task.getException())
1146+
}
1147+
}
1148+
// [END count_aggregate_collection]
1149+
}
1150+
1151+
fun countAggregateQuery() {
1152+
// [START count_aggregate_query]
1153+
val query = db.collection("cities").whereEqualTo("state", "CA")
1154+
val countQuery = query.count()
1155+
countQuery.get(AggregateSource.SERVER).addOnCompleteListener { task ->
1156+
if (task.isSuccessful) {
1157+
// Count fetched successfully
1158+
val snapshot = task.result
1159+
Log.d(TAG, "Count: ${snapshot.count}")
1160+
} else {
1161+
Log.d(TAG, "Count failed: ", task.getException())
1162+
}
1163+
}
1164+
// [END count_aggregate_query]
1165+
}
11331166
}

0 commit comments

Comments
 (0)