void LoadFirestoreBundles()

in firestore/android/FirestoreSnippetsCpp/app/src/main/cpp/snippets.cpp [1126:1171]


void LoadFirestoreBundles(firebase::firestore::Firestore* db) {
  using firebase::Future;
  using firebase::firestore::Error;
  using firebase::firestore::Firestore;
  using firebase::firestore::LoadBundleTaskProgress;
  using firebase::firestore::Query;
  using firebase::firestore::QuerySnapshot;

  // [START bundled_query]
  db->LoadBundle("bundle_name", [](const LoadBundleTaskProgress& progress) {
    switch(progress.state()) {
      case LoadBundleTaskProgress::State::kError: {
        // The bundle load has errored. Handle the error in the returned future.
        return;
      }
      case LoadBundleTaskProgress::State::kInProgress: {
        std::cout << "Bytes loaded from bundle: " << progress.bytes_loaded()
                  << std::endl;
        break;
      }
      case LoadBundleTaskProgress::State::kSuccess: {
        std::cout << "Bundle load succeeeded" << std::endl;
        break;
      }
    }
  }).OnCompletion([db](const Future<LoadBundleTaskProgress>& future) {
    if (future.error() != Error::kErrorOk) {
      // Handle error...
      return;
    }

    const std::string& query_name = "latest_stories_query";
    db->NamedQuery(query_name).OnCompletion([](const Future<Query>& query_future){
      if (query_future.error() != Error::kErrorOk) {
        // Handle error...
        return;
      }

      const Query* query = query_future.result();
      query->Get().OnCompletion([](const Future<QuerySnapshot> &){
        // ...
      });
    });
  });
  // [END bundled_query]
}