Я использую осколки Firestore для отслеживания количества документов в коллекции. Как мне преобразовать задачу, которую она возвращает, в строку?
Мой метод (аналогично документации Firebase):
public Task<Integer> getCount(final DocumentReference ref) {
// Sum the count of each shard in the subcollection
return ref.collection("shards").get()
.continueWith(new Continuation<QuerySnapshot, Integer>() {
@Override
public Integer then(@NonNull Task<QuerySnapshot> task) throws Exception {
int count = 0;
for (DocumentSnapshot snap : task.getResult()) {
Shard shard = snap.toObject(Shard.class);
count += shard.count;
}
Log.d(TAG, Integer.toString(count));
return count;
}
});
}
правильно регистрирует счет следующим образом: D/saveMessageSent: 1
Однако, когда я вызываю метод getCount где-то еще, вот так:
Log.d(TAG, String.valueOf(getCount(counterDocRef)));
тогда вывод журнала:
D/saveMessageSent: com.google.android.gms.tasks.zzu@8673e29
Я не могу преобразовать его в строку, так как он говорит, что это
com.google.android.gms.tasks.Task<java.lang.Integer>
Как мне обойти это, так что когда я вызываю getCount, он дает мне int, который я могу использовать?