firebase-cpp-sdk icon indicating copy to clipboard operation
firebase-cpp-sdk copied to clipboard

[FR] Add `SUM` Functionality to AggregateQuerySnapshot

Open KKimj opened this issue 8 months ago • 2 comments

Feature proposal

Firebase Component: Firestore

Hello, The Firestore C++ SDK currently supports only the count() method in the firebase::firestore::AggregateQuerySnapshot class but lacks a sum() method (and avg()), which is essential for aggregating numeric fields across documents.

Current State

The public functions of AggregateQuerySnapshot are:

  • count()
  • is_valid()
  • Assignment operators (operator=)
  • query()

Reference:

  • https://github.com/firebase/firebase-cpp-sdk/blob/main/firestore/src/include/firebase/firestore/aggregate_query_snapshot.h#L109

Flutter SDK Implications

This enhancement would also benefit the Flutter SDK, which relies on the Firestore C++ SDK for Windows platform support. For example, in the FlutterFire plugin, unsupported aggregation types like sum currently result in:

...
      case AggregateType::sum:
        std::cout << "Sum is not supported on C++" << std::endl;
        break;
...

Adding sum() to the C++ SDK would also benefit Flutter developers using Firestore on Windows.

Benefits

Implementing a sum() method would:

  1. Provide access to Firestore's aggregation capabilities in the C++ SDK.
  2. Support more use cases for C++ and Flutter developers.

Looking forward to hearing thoughts and feedback!
Thanks,

KKimj avatar Mar 31 '25 02:03 KKimj

I found a few problems with this issue:

  • I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
  • This issue does not seem to follow the issue template. Make sure you provide all the required information.

google-oss-bot avatar Mar 31 '25 02:03 google-oss-bot

Hi @KKimj , thank you for filling out the ticket. This has been added to the feature request list.

cherylEnkidu avatar Mar 31 '25 15:03 cherylEnkidu