#include "google/firestore/v1beta1/firestore.pb.h"
#include "google/firestore/v1beta1/firestore.grpc.pb.h"

#include <grpcpp/impl/codegen/async_stream.h>
#include <grpcpp/impl/codegen/async_unary_call.h>
#include <grpcpp/impl/codegen/channel_interface.h>
#include <grpcpp/impl/codegen/client_unary_call.h>
#include <grpcpp/impl/codegen/method_handler_impl.h>
#include <grpcpp/impl/codegen/rpc_service_method.h>
#include <grpcpp/impl/codegen/service_type.h>
#include <grpcpp/impl/codegen/sync_stream.h>
namespace google {
namespace firestore {
namespace v1beta1 {

static const char* Firestore_method_names[] = {
  "/google.firestore.v1beta1.Firestore/GetDocument",
  "/google.firestore.v1beta1.Firestore/ListDocuments",
  "/google.firestore.v1beta1.Firestore/CreateDocument",
  "/google.firestore.v1beta1.Firestore/UpdateDocument",
  "/google.firestore.v1beta1.Firestore/DeleteDocument",
  "/google.firestore.v1beta1.Firestore/BatchGetDocuments",
  "/google.firestore.v1beta1.Firestore/BeginTransaction",
  "/google.firestore.v1beta1.Firestore/Commit",
  "/google.firestore.v1beta1.Firestore/Rollback",
  "/google.firestore.v1beta1.Firestore/RunQuery",
  "/google.firestore.v1beta1.Firestore/Write",
  "/google.firestore.v1beta1.Firestore/Listen",
  "/google.firestore.v1beta1.Firestore/ListCollectionIds",
};

std::unique_ptr< Firestore::Stub> Firestore::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) {
  (void)options;
  std::unique_ptr< Firestore::Stub> stub(new Firestore::Stub(channel));
  return stub;
}

Firestore::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel)
  : channel_(channel), rpcmethod_GetDocument_(Firestore_method_names[0], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_ListDocuments_(Firestore_method_names[1], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_CreateDocument_(Firestore_method_names[2], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_UpdateDocument_(Firestore_method_names[3], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_DeleteDocument_(Firestore_method_names[4], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_BatchGetDocuments_(Firestore_method_names[5], ::grpc::internal::RpcMethod::SERVER_STREAMING, channel)
  , rpcmethod_BeginTransaction_(Firestore_method_names[6], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_Commit_(Firestore_method_names[7], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_Rollback_(Firestore_method_names[8], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_RunQuery_(Firestore_method_names[9], ::grpc::internal::RpcMethod::SERVER_STREAMING, channel)
  , rpcmethod_Write_(Firestore_method_names[10], ::grpc::internal::RpcMethod::BIDI_STREAMING, channel)
  , rpcmethod_Listen_(Firestore_method_names[11], ::grpc::internal::RpcMethod::BIDI_STREAMING, channel)
  , rpcmethod_ListCollectionIds_(Firestore_method_names[12], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  {}

::grpc::Status Firestore::Stub::GetDocument(::grpc::ClientContext* context, const ::google::firestore::v1beta1::GetDocumentRequest& request, ::google::firestore::v1beta1::Document* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_GetDocument_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::Document>* Firestore::Stub::AsyncGetDocumentRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::GetDocumentRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::Document>::Create(channel_.get(), cq, rpcmethod_GetDocument_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::Document>* Firestore::Stub::PrepareAsyncGetDocumentRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::GetDocumentRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::Document>::Create(channel_.get(), cq, rpcmethod_GetDocument_, context, request, false);
}

::grpc::Status Firestore::Stub::ListDocuments(::grpc::ClientContext* context, const ::google::firestore::v1beta1::ListDocumentsRequest& request, ::google::firestore::v1beta1::ListDocumentsResponse* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_ListDocuments_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::ListDocumentsResponse>* Firestore::Stub::AsyncListDocumentsRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::ListDocumentsRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::ListDocumentsResponse>::Create(channel_.get(), cq, rpcmethod_ListDocuments_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::ListDocumentsResponse>* Firestore::Stub::PrepareAsyncListDocumentsRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::ListDocumentsRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::ListDocumentsResponse>::Create(channel_.get(), cq, rpcmethod_ListDocuments_, context, request, false);
}

::grpc::Status Firestore::Stub::CreateDocument(::grpc::ClientContext* context, const ::google::firestore::v1beta1::CreateDocumentRequest& request, ::google::firestore::v1beta1::Document* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_CreateDocument_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::Document>* Firestore::Stub::AsyncCreateDocumentRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::CreateDocumentRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::Document>::Create(channel_.get(), cq, rpcmethod_CreateDocument_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::Document>* Firestore::Stub::PrepareAsyncCreateDocumentRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::CreateDocumentRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::Document>::Create(channel_.get(), cq, rpcmethod_CreateDocument_, context, request, false);
}

::grpc::Status Firestore::Stub::UpdateDocument(::grpc::ClientContext* context, const ::google::firestore::v1beta1::UpdateDocumentRequest& request, ::google::firestore::v1beta1::Document* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_UpdateDocument_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::Document>* Firestore::Stub::AsyncUpdateDocumentRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::UpdateDocumentRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::Document>::Create(channel_.get(), cq, rpcmethod_UpdateDocument_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::Document>* Firestore::Stub::PrepareAsyncUpdateDocumentRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::UpdateDocumentRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::Document>::Create(channel_.get(), cq, rpcmethod_UpdateDocument_, context, request, false);
}

::grpc::Status Firestore::Stub::DeleteDocument(::grpc::ClientContext* context, const ::google::firestore::v1beta1::DeleteDocumentRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_DeleteDocument_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Firestore::Stub::AsyncDeleteDocumentRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::DeleteDocumentRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::protobuf::Empty>::Create(channel_.get(), cq, rpcmethod_DeleteDocument_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Firestore::Stub::PrepareAsyncDeleteDocumentRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::DeleteDocumentRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::protobuf::Empty>::Create(channel_.get(), cq, rpcmethod_DeleteDocument_, context, request, false);
}

::grpc::ClientReader< ::google::firestore::v1beta1::BatchGetDocumentsResponse>* Firestore::Stub::BatchGetDocumentsRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::BatchGetDocumentsRequest& request) {
  return ::grpc::internal::ClientReaderFactory< ::google::firestore::v1beta1::BatchGetDocumentsResponse>::Create(channel_.get(), rpcmethod_BatchGetDocuments_, context, request);
}

::grpc::ClientAsyncReader< ::google::firestore::v1beta1::BatchGetDocumentsResponse>* Firestore::Stub::AsyncBatchGetDocumentsRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::BatchGetDocumentsRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
  return ::grpc::internal::ClientAsyncReaderFactory< ::google::firestore::v1beta1::BatchGetDocumentsResponse>::Create(channel_.get(), cq, rpcmethod_BatchGetDocuments_, context, request, true, tag);
}

::grpc::ClientAsyncReader< ::google::firestore::v1beta1::BatchGetDocumentsResponse>* Firestore::Stub::PrepareAsyncBatchGetDocumentsRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::BatchGetDocumentsRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncReaderFactory< ::google::firestore::v1beta1::BatchGetDocumentsResponse>::Create(channel_.get(), cq, rpcmethod_BatchGetDocuments_, context, request, false, nullptr);
}

::grpc::Status Firestore::Stub::BeginTransaction(::grpc::ClientContext* context, const ::google::firestore::v1beta1::BeginTransactionRequest& request, ::google::firestore::v1beta1::BeginTransactionResponse* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_BeginTransaction_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::BeginTransactionResponse>* Firestore::Stub::AsyncBeginTransactionRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::BeginTransactionRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::BeginTransactionResponse>::Create(channel_.get(), cq, rpcmethod_BeginTransaction_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::BeginTransactionResponse>* Firestore::Stub::PrepareAsyncBeginTransactionRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::BeginTransactionRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::BeginTransactionResponse>::Create(channel_.get(), cq, rpcmethod_BeginTransaction_, context, request, false);
}

::grpc::Status Firestore::Stub::Commit(::grpc::ClientContext* context, const ::google::firestore::v1beta1::CommitRequest& request, ::google::firestore::v1beta1::CommitResponse* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_Commit_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::CommitResponse>* Firestore::Stub::AsyncCommitRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::CommitRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::CommitResponse>::Create(channel_.get(), cq, rpcmethod_Commit_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::CommitResponse>* Firestore::Stub::PrepareAsyncCommitRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::CommitRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::CommitResponse>::Create(channel_.get(), cq, rpcmethod_Commit_, context, request, false);
}

::grpc::Status Firestore::Stub::Rollback(::grpc::ClientContext* context, const ::google::firestore::v1beta1::RollbackRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_Rollback_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Firestore::Stub::AsyncRollbackRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::RollbackRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::protobuf::Empty>::Create(channel_.get(), cq, rpcmethod_Rollback_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Firestore::Stub::PrepareAsyncRollbackRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::RollbackRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::protobuf::Empty>::Create(channel_.get(), cq, rpcmethod_Rollback_, context, request, false);
}

::grpc::ClientReader< ::google::firestore::v1beta1::RunQueryResponse>* Firestore::Stub::RunQueryRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::RunQueryRequest& request) {
  return ::grpc::internal::ClientReaderFactory< ::google::firestore::v1beta1::RunQueryResponse>::Create(channel_.get(), rpcmethod_RunQuery_, context, request);
}

::grpc::ClientAsyncReader< ::google::firestore::v1beta1::RunQueryResponse>* Firestore::Stub::AsyncRunQueryRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::RunQueryRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
  return ::grpc::internal::ClientAsyncReaderFactory< ::google::firestore::v1beta1::RunQueryResponse>::Create(channel_.get(), cq, rpcmethod_RunQuery_, context, request, true, tag);
}

::grpc::ClientAsyncReader< ::google::firestore::v1beta1::RunQueryResponse>* Firestore::Stub::PrepareAsyncRunQueryRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::RunQueryRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncReaderFactory< ::google::firestore::v1beta1::RunQueryResponse>::Create(channel_.get(), cq, rpcmethod_RunQuery_, context, request, false, nullptr);
}

::grpc::ClientReaderWriter< ::google::firestore::v1beta1::WriteRequest, ::google::firestore::v1beta1::WriteResponse>* Firestore::Stub::WriteRaw(::grpc::ClientContext* context) {
  return ::grpc::internal::ClientReaderWriterFactory< ::google::firestore::v1beta1::WriteRequest, ::google::firestore::v1beta1::WriteResponse>::Create(channel_.get(), rpcmethod_Write_, context);
}

::grpc::ClientAsyncReaderWriter< ::google::firestore::v1beta1::WriteRequest, ::google::firestore::v1beta1::WriteResponse>* Firestore::Stub::AsyncWriteRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) {
  return ::grpc::internal::ClientAsyncReaderWriterFactory< ::google::firestore::v1beta1::WriteRequest, ::google::firestore::v1beta1::WriteResponse>::Create(channel_.get(), cq, rpcmethod_Write_, context, true, tag);
}

::grpc::ClientAsyncReaderWriter< ::google::firestore::v1beta1::WriteRequest, ::google::firestore::v1beta1::WriteResponse>* Firestore::Stub::PrepareAsyncWriteRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncReaderWriterFactory< ::google::firestore::v1beta1::WriteRequest, ::google::firestore::v1beta1::WriteResponse>::Create(channel_.get(), cq, rpcmethod_Write_, context, false, nullptr);
}

::grpc::ClientReaderWriter< ::google::firestore::v1beta1::ListenRequest, ::google::firestore::v1beta1::ListenResponse>* Firestore::Stub::ListenRaw(::grpc::ClientContext* context) {
  return ::grpc::internal::ClientReaderWriterFactory< ::google::firestore::v1beta1::ListenRequest, ::google::firestore::v1beta1::ListenResponse>::Create(channel_.get(), rpcmethod_Listen_, context);
}

::grpc::ClientAsyncReaderWriter< ::google::firestore::v1beta1::ListenRequest, ::google::firestore::v1beta1::ListenResponse>* Firestore::Stub::AsyncListenRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) {
  return ::grpc::internal::ClientAsyncReaderWriterFactory< ::google::firestore::v1beta1::ListenRequest, ::google::firestore::v1beta1::ListenResponse>::Create(channel_.get(), cq, rpcmethod_Listen_, context, true, tag);
}

::grpc::ClientAsyncReaderWriter< ::google::firestore::v1beta1::ListenRequest, ::google::firestore::v1beta1::ListenResponse>* Firestore::Stub::PrepareAsyncListenRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncReaderWriterFactory< ::google::firestore::v1beta1::ListenRequest, ::google::firestore::v1beta1::ListenResponse>::Create(channel_.get(), cq, rpcmethod_Listen_, context, false, nullptr);
}

::grpc::Status Firestore::Stub::ListCollectionIds(::grpc::ClientContext* context, const ::google::firestore::v1beta1::ListCollectionIdsRequest& request, ::google::firestore::v1beta1::ListCollectionIdsResponse* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_ListCollectionIds_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::ListCollectionIdsResponse>* Firestore::Stub::AsyncListCollectionIdsRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::ListCollectionIdsRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::ListCollectionIdsResponse>::Create(channel_.get(), cq, rpcmethod_ListCollectionIds_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::ListCollectionIdsResponse>* Firestore::Stub::PrepareAsyncListCollectionIdsRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::ListCollectionIdsRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::ListCollectionIdsResponse>::Create(channel_.get(), cq, rpcmethod_ListCollectionIds_, context, request, false);
}

Firestore::Service::Service() {
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[0],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::GetDocumentRequest, ::google::firestore::v1beta1::Document>(
          std::mem_fn(&Firestore::Service::GetDocument), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[1],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::ListDocumentsRequest, ::google::firestore::v1beta1::ListDocumentsResponse>(
          std::mem_fn(&Firestore::Service::ListDocuments), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[2],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::CreateDocumentRequest, ::google::firestore::v1beta1::Document>(
          std::mem_fn(&Firestore::Service::CreateDocument), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[3],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::UpdateDocumentRequest, ::google::firestore::v1beta1::Document>(
          std::mem_fn(&Firestore::Service::UpdateDocument), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[4],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::DeleteDocumentRequest, ::google::protobuf::Empty>(
          std::mem_fn(&Firestore::Service::DeleteDocument), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[5],
      ::grpc::internal::RpcMethod::SERVER_STREAMING,
      new ::grpc::internal::ServerStreamingHandler< Firestore::Service, ::google::firestore::v1beta1::BatchGetDocumentsRequest, ::google::firestore::v1beta1::BatchGetDocumentsResponse>(
          std::mem_fn(&Firestore::Service::BatchGetDocuments), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[6],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::BeginTransactionRequest, ::google::firestore::v1beta1::BeginTransactionResponse>(
          std::mem_fn(&Firestore::Service::BeginTransaction), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[7],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::CommitRequest, ::google::firestore::v1beta1::CommitResponse>(
          std::mem_fn(&Firestore::Service::Commit), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[8],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::RollbackRequest, ::google::protobuf::Empty>(
          std::mem_fn(&Firestore::Service::Rollback), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[9],
      ::grpc::internal::RpcMethod::SERVER_STREAMING,
      new ::grpc::internal::ServerStreamingHandler< Firestore::Service, ::google::firestore::v1beta1::RunQueryRequest, ::google::firestore::v1beta1::RunQueryResponse>(
          std::mem_fn(&Firestore::Service::RunQuery), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[10],
      ::grpc::internal::RpcMethod::BIDI_STREAMING,
      new ::grpc::internal::BidiStreamingHandler< Firestore::Service, ::google::firestore::v1beta1::WriteRequest, ::google::firestore::v1beta1::WriteResponse>(
          std::mem_fn(&Firestore::Service::Write), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[11],
      ::grpc::internal::RpcMethod::BIDI_STREAMING,
      new ::grpc::internal::BidiStreamingHandler< Firestore::Service, ::google::firestore::v1beta1::ListenRequest, ::google::firestore::v1beta1::ListenResponse>(
          std::mem_fn(&Firestore::Service::Listen), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[12],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::ListCollectionIdsRequest, ::google::firestore::v1beta1::ListCollectionIdsResponse>(
          std::mem_fn(&Firestore::Service::ListCollectionIds), this)));
}

Firestore::Service::~Service() {
}

::grpc::Status Firestore::Service::GetDocument(::grpc::ServerContext* context, const ::google::firestore::v1beta1::GetDocumentRequest* request, ::google::firestore::v1beta1::Document* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::ListDocuments(::grpc::ServerContext* context, const ::google::firestore::v1beta1::ListDocumentsRequest* request, ::google::firestore::v1beta1::ListDocumentsResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::CreateDocument(::grpc::ServerContext* context, const ::google::firestore::v1beta1::CreateDocumentRequest* request, ::google::firestore::v1beta1::Document* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::UpdateDocument(::grpc::ServerContext* context, const ::google::firestore::v1beta1::UpdateDocumentRequest* request, ::google::firestore::v1beta1::Document* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::DeleteDocument(::grpc::ServerContext* context, const ::google::firestore::v1beta1::DeleteDocumentRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::BatchGetDocuments(::grpc::ServerContext* context, const ::google::firestore::v1beta1::BatchGetDocumentsRequest* request, ::grpc::ServerWriter< ::google::firestore::v1beta1::BatchGetDocumentsResponse>* writer) {
  (void) context;
  (void) request;
  (void) writer;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::BeginTransaction(::grpc::ServerContext* context, const ::google::firestore::v1beta1::BeginTransactionRequest* request, ::google::firestore::v1beta1::BeginTransactionResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::Commit(::grpc::ServerContext* context, const ::google::firestore::v1beta1::CommitRequest* request, ::google::firestore::v1beta1::CommitResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::Rollback(::grpc::ServerContext* context, const ::google::firestore::v1beta1::RollbackRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::RunQuery(::grpc::ServerContext* context, const ::google::firestore::v1beta1::RunQueryRequest* request, ::grpc::ServerWriter< ::google::firestore::v1beta1::RunQueryResponse>* writer) {
  (void) context;
  (void) request;
  (void) writer;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::Write(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::google::firestore::v1beta1::WriteResponse, ::google::firestore::v1beta1::WriteRequest>* stream) {
  (void) context;
  (void) stream;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::Listen(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::google::firestore::v1beta1::ListenResponse, ::google::firestore::v1beta1::ListenRequest>* stream) {
  (void) context;
  (void) stream;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::ListCollectionIds(::grpc::ServerContext* context, const ::google::firestore::v1beta1::ListCollectionIdsRequest* request, ::google::firestore::v1beta1::ListCollectionIdsResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

}  
}  
}
// Generated by the gRPC C++ plugin.
// If you make any local change, they will be lost.
// source: google/firestore/v1beta1/firestore.proto

#include "google/firestore/v1beta1/firestore.pb.h"
#include "google/firestore/v1beta1/firestore.grpc.pb.h"

#include <grpcpp/impl/codegen/async_stream.h>
#include <grpcpp/impl/codegen/async_unary_call.h>
#include <grpcpp/impl/codegen/channel_interface.h>
#include <grpcpp/impl/codegen/client_unary_call.h>
#include <grpcpp/impl/codegen/method_handler_impl.h>
#include <grpcpp/impl/codegen/rpc_service_method.h>
#include <grpcpp/impl/codegen/service_type.h>
#include <grpcpp/impl/codegen/sync_stream.h>
namespace google {
namespace firestore {
namespace v1beta1 {

static const char* Firestore_method_names[] = {
  "/google.firestore.v1beta1.Firestore/GetDocument",
  "/google.firestore.v1beta1.Firestore/ListDocuments",
  "/google.firestore.v1beta1.Firestore/CreateDocument",
  "/google.firestore.v1beta1.Firestore/UpdateDocument",
  "/google.firestore.v1beta1.Firestore/DeleteDocument",
  "/google.firestore.v1beta1.Firestore/BatchGetDocuments",
  "/google.firestore.v1beta1.Firestore/BeginTransaction",
  "/google.firestore.v1beta1.Firestore/Commit",
  "/google.firestore.v1beta1.Firestore/Rollback",
  "/google.firestore.v1beta1.Firestore/RunQuery",
  "/google.firestore.v1beta1.Firestore/Write",
  "/google.firestore.v1beta1.Firestore/Listen",
  "/google.firestore.v1beta1.Firestore/ListCollectionIds",
};

std::unique_ptr< Firestore::Stub> Firestore::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) {
  (void)options;
  std::unique_ptr< Firestore::Stub> stub(new Firestore::Stub(channel));
  return stub;
}

Firestore::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel)
  : channel_(channel), rpcmethod_GetDocument_(Firestore_method_names[0], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_ListDocuments_(Firestore_method_names[1], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_CreateDocument_(Firestore_method_names[2], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_UpdateDocument_(Firestore_method_names[3], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_DeleteDocument_(Firestore_method_names[4], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_BatchGetDocuments_(Firestore_method_names[5], ::grpc::internal::RpcMethod::SERVER_STREAMING, channel)
  , rpcmethod_BeginTransaction_(Firestore_method_names[6], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_Commit_(Firestore_method_names[7], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_Rollback_(Firestore_method_names[8], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_RunQuery_(Firestore_method_names[9], ::grpc::internal::RpcMethod::SERVER_STREAMING, channel)
  , rpcmethod_Write_(Firestore_method_names[10], ::grpc::internal::RpcMethod::BIDI_STREAMING, channel)
  , rpcmethod_Listen_(Firestore_method_names[11], ::grpc::internal::RpcMethod::BIDI_STREAMING, channel)
  , rpcmethod_ListCollectionIds_(Firestore_method_names[12], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  {}

::grpc::Status Firestore::Stub::GetDocument(::grpc::ClientContext* context, const ::google::firestore::v1beta1::GetDocumentRequest& request, ::google::firestore::v1beta1::Document* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_GetDocument_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::Document>* Firestore::Stub::AsyncGetDocumentRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::GetDocumentRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::Document>::Create(channel_.get(), cq, rpcmethod_GetDocument_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::Document>* Firestore::Stub::PrepareAsyncGetDocumentRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::GetDocumentRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::Document>::Create(channel_.get(), cq, rpcmethod_GetDocument_, context, request, false);
}

::grpc::Status Firestore::Stub::ListDocuments(::grpc::ClientContext* context, const ::google::firestore::v1beta1::ListDocumentsRequest& request, ::google::firestore::v1beta1::ListDocumentsResponse* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_ListDocuments_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::ListDocumentsResponse>* Firestore::Stub::AsyncListDocumentsRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::ListDocumentsRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::ListDocumentsResponse>::Create(channel_.get(), cq, rpcmethod_ListDocuments_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::ListDocumentsResponse>* Firestore::Stub::PrepareAsyncListDocumentsRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::ListDocumentsRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::ListDocumentsResponse>::Create(channel_.get(), cq, rpcmethod_ListDocuments_, context, request, false);
}

::grpc::Status Firestore::Stub::CreateDocument(::grpc::ClientContext* context, const ::google::firestore::v1beta1::CreateDocumentRequest& request, ::google::firestore::v1beta1::Document* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_CreateDocument_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::Document>* Firestore::Stub::AsyncCreateDocumentRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::CreateDocumentRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::Document>::Create(channel_.get(), cq, rpcmethod_CreateDocument_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::Document>* Firestore::Stub::PrepareAsyncCreateDocumentRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::CreateDocumentRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::Document>::Create(channel_.get(), cq, rpcmethod_CreateDocument_, context, request, false);
}

::grpc::Status Firestore::Stub::UpdateDocument(::grpc::ClientContext* context, const ::google::firestore::v1beta1::UpdateDocumentRequest& request, ::google::firestore::v1beta1::Document* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_UpdateDocument_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::Document>* Firestore::Stub::AsyncUpdateDocumentRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::UpdateDocumentRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::Document>::Create(channel_.get(), cq, rpcmethod_UpdateDocument_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::Document>* Firestore::Stub::PrepareAsyncUpdateDocumentRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::UpdateDocumentRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::Document>::Create(channel_.get(), cq, rpcmethod_UpdateDocument_, context, request, false);
}

::grpc::Status Firestore::Stub::DeleteDocument(::grpc::ClientContext* context, const ::google::firestore::v1beta1::DeleteDocumentRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_DeleteDocument_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Firestore::Stub::AsyncDeleteDocumentRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::DeleteDocumentRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::protobuf::Empty>::Create(channel_.get(), cq, rpcmethod_DeleteDocument_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Firestore::Stub::PrepareAsyncDeleteDocumentRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::DeleteDocumentRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::protobuf::Empty>::Create(channel_.get(), cq, rpcmethod_DeleteDocument_, context, request, false);
}

::grpc::ClientReader< ::google::firestore::v1beta1::BatchGetDocumentsResponse>* Firestore::Stub::BatchGetDocumentsRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::BatchGetDocumentsRequest& request) {
  return ::grpc::internal::ClientReaderFactory< ::google::firestore::v1beta1::BatchGetDocumentsResponse>::Create(channel_.get(), rpcmethod_BatchGetDocuments_, context, request);
}

::grpc::ClientAsyncReader< ::google::firestore::v1beta1::BatchGetDocumentsResponse>* Firestore::Stub::AsyncBatchGetDocumentsRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::BatchGetDocumentsRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
  return ::grpc::internal::ClientAsyncReaderFactory< ::google::firestore::v1beta1::BatchGetDocumentsResponse>::Create(channel_.get(), cq, rpcmethod_BatchGetDocuments_, context, request, true, tag);
}

::grpc::ClientAsyncReader< ::google::firestore::v1beta1::BatchGetDocumentsResponse>* Firestore::Stub::PrepareAsyncBatchGetDocumentsRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::BatchGetDocumentsRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncReaderFactory< ::google::firestore::v1beta1::BatchGetDocumentsResponse>::Create(channel_.get(), cq, rpcmethod_BatchGetDocuments_, context, request, false, nullptr);
}

::grpc::Status Firestore::Stub::BeginTransaction(::grpc::ClientContext* context, const ::google::firestore::v1beta1::BeginTransactionRequest& request, ::google::firestore::v1beta1::BeginTransactionResponse* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_BeginTransaction_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::BeginTransactionResponse>* Firestore::Stub::AsyncBeginTransactionRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::BeginTransactionRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::BeginTransactionResponse>::Create(channel_.get(), cq, rpcmethod_BeginTransaction_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::BeginTransactionResponse>* Firestore::Stub::PrepareAsyncBeginTransactionRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::BeginTransactionRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::BeginTransactionResponse>::Create(channel_.get(), cq, rpcmethod_BeginTransaction_, context, request, false);
}

::grpc::Status Firestore::Stub::Commit(::grpc::ClientContext* context, const ::google::firestore::v1beta1::CommitRequest& request, ::google::firestore::v1beta1::CommitResponse* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_Commit_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::CommitResponse>* Firestore::Stub::AsyncCommitRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::CommitRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::CommitResponse>::Create(channel_.get(), cq, rpcmethod_Commit_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::CommitResponse>* Firestore::Stub::PrepareAsyncCommitRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::CommitRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::CommitResponse>::Create(channel_.get(), cq, rpcmethod_Commit_, context, request, false);
}

::grpc::Status Firestore::Stub::Rollback(::grpc::ClientContext* context, const ::google::firestore::v1beta1::RollbackRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_Rollback_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Firestore::Stub::AsyncRollbackRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::RollbackRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::protobuf::Empty>::Create(channel_.get(), cq, rpcmethod_Rollback_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Firestore::Stub::PrepareAsyncRollbackRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::RollbackRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::protobuf::Empty>::Create(channel_.get(), cq, rpcmethod_Rollback_, context, request, false);
}

::grpc::ClientReader< ::google::firestore::v1beta1::RunQueryResponse>* Firestore::Stub::RunQueryRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::RunQueryRequest& request) {
  return ::grpc::internal::ClientReaderFactory< ::google::firestore::v1beta1::RunQueryResponse>::Create(channel_.get(), rpcmethod_RunQuery_, context, request);
}

::grpc::ClientAsyncReader< ::google::firestore::v1beta1::RunQueryResponse>* Firestore::Stub::AsyncRunQueryRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::RunQueryRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
  return ::grpc::internal::ClientAsyncReaderFactory< ::google::firestore::v1beta1::RunQueryResponse>::Create(channel_.get(), cq, rpcmethod_RunQuery_, context, request, true, tag);
}

::grpc::ClientAsyncReader< ::google::firestore::v1beta1::RunQueryResponse>* Firestore::Stub::PrepareAsyncRunQueryRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::RunQueryRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncReaderFactory< ::google::firestore::v1beta1::RunQueryResponse>::Create(channel_.get(), cq, rpcmethod_RunQuery_, context, request, false, nullptr);
}

::grpc::ClientReaderWriter< ::google::firestore::v1beta1::WriteRequest, ::google::firestore::v1beta1::WriteResponse>* Firestore::Stub::WriteRaw(::grpc::ClientContext* context) {
  return ::grpc::internal::ClientReaderWriterFactory< ::google::firestore::v1beta1::WriteRequest, ::google::firestore::v1beta1::WriteResponse>::Create(channel_.get(), rpcmethod_Write_, context);
}

::grpc::ClientAsyncReaderWriter< ::google::firestore::v1beta1::WriteRequest, ::google::firestore::v1beta1::WriteResponse>* Firestore::Stub::AsyncWriteRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) {
  return ::grpc::internal::ClientAsyncReaderWriterFactory< ::google::firestore::v1beta1::WriteRequest, ::google::firestore::v1beta1::WriteResponse>::Create(channel_.get(), cq, rpcmethod_Write_, context, true, tag);
}

::grpc::ClientAsyncReaderWriter< ::google::firestore::v1beta1::WriteRequest, ::google::firestore::v1beta1::WriteResponse>* Firestore::Stub::PrepareAsyncWriteRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncReaderWriterFactory< ::google::firestore::v1beta1::WriteRequest, ::google::firestore::v1beta1::WriteResponse>::Create(channel_.get(), cq, rpcmethod_Write_, context, false, nullptr);
}

::grpc::ClientReaderWriter< ::google::firestore::v1beta1::ListenRequest, ::google::firestore::v1beta1::ListenResponse>* Firestore::Stub::ListenRaw(::grpc::ClientContext* context) {
  return ::grpc::internal::ClientReaderWriterFactory< ::google::firestore::v1beta1::ListenRequest, ::google::firestore::v1beta1::ListenResponse>::Create(channel_.get(), rpcmethod_Listen_, context);
}

::grpc::ClientAsyncReaderWriter< ::google::firestore::v1beta1::ListenRequest, ::google::firestore::v1beta1::ListenResponse>* Firestore::Stub::AsyncListenRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) {
  return ::grpc::internal::ClientAsyncReaderWriterFactory< ::google::firestore::v1beta1::ListenRequest, ::google::firestore::v1beta1::ListenResponse>::Create(channel_.get(), cq, rpcmethod_Listen_, context, true, tag);
}

::grpc::ClientAsyncReaderWriter< ::google::firestore::v1beta1::ListenRequest, ::google::firestore::v1beta1::ListenResponse>* Firestore::Stub::PrepareAsyncListenRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncReaderWriterFactory< ::google::firestore::v1beta1::ListenRequest, ::google::firestore::v1beta1::ListenResponse>::Create(channel_.get(), cq, rpcmethod_Listen_, context, false, nullptr);
}

::grpc::Status Firestore::Stub::ListCollectionIds(::grpc::ClientContext* context, const ::google::firestore::v1beta1::ListCollectionIdsRequest& request, ::google::firestore::v1beta1::ListCollectionIdsResponse* response) {
  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_ListCollectionIds_, context, request, response);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::ListCollectionIdsResponse>* Firestore::Stub::AsyncListCollectionIdsRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::ListCollectionIdsRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::ListCollectionIdsResponse>::Create(channel_.get(), cq, rpcmethod_ListCollectionIds_, context, request, true);
}

::grpc::ClientAsyncResponseReader< ::google::firestore::v1beta1::ListCollectionIdsResponse>* Firestore::Stub::PrepareAsyncListCollectionIdsRaw(::grpc::ClientContext* context, const ::google::firestore::v1beta1::ListCollectionIdsRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::google::firestore::v1beta1::ListCollectionIdsResponse>::Create(channel_.get(), cq, rpcmethod_ListCollectionIds_, context, request, false);
}

Firestore::Service::Service() {
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[0],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::GetDocumentRequest, ::google::firestore::v1beta1::Document>(
          std::mem_fn(&Firestore::Service::GetDocument), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[1],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::ListDocumentsRequest, ::google::firestore::v1beta1::ListDocumentsResponse>(
          std::mem_fn(&Firestore::Service::ListDocuments), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[2],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::CreateDocumentRequest, ::google::firestore::v1beta1::Document>(
          std::mem_fn(&Firestore::Service::CreateDocument), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[3],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::UpdateDocumentRequest, ::google::firestore::v1beta1::Document>(
          std::mem_fn(&Firestore::Service::UpdateDocument), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[4],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::DeleteDocumentRequest, ::google::protobuf::Empty>(
          std::mem_fn(&Firestore::Service::DeleteDocument), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[5],
      ::grpc::internal::RpcMethod::SERVER_STREAMING,
      new ::grpc::internal::ServerStreamingHandler< Firestore::Service, ::google::firestore::v1beta1::BatchGetDocumentsRequest, ::google::firestore::v1beta1::BatchGetDocumentsResponse>(
          std::mem_fn(&Firestore::Service::BatchGetDocuments), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[6],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::BeginTransactionRequest, ::google::firestore::v1beta1::BeginTransactionResponse>(
          std::mem_fn(&Firestore::Service::BeginTransaction), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[7],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::CommitRequest, ::google::firestore::v1beta1::CommitResponse>(
          std::mem_fn(&Firestore::Service::Commit), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[8],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::RollbackRequest, ::google::protobuf::Empty>(
          std::mem_fn(&Firestore::Service::Rollback), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[9],
      ::grpc::internal::RpcMethod::SERVER_STREAMING,
      new ::grpc::internal::ServerStreamingHandler< Firestore::Service, ::google::firestore::v1beta1::RunQueryRequest, ::google::firestore::v1beta1::RunQueryResponse>(
          std::mem_fn(&Firestore::Service::RunQuery), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[10],
      ::grpc::internal::RpcMethod::BIDI_STREAMING,
      new ::grpc::internal::BidiStreamingHandler< Firestore::Service, ::google::firestore::v1beta1::WriteRequest, ::google::firestore::v1beta1::WriteResponse>(
          std::mem_fn(&Firestore::Service::Write), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[11],
      ::grpc::internal::RpcMethod::BIDI_STREAMING,
      new ::grpc::internal::BidiStreamingHandler< Firestore::Service, ::google::firestore::v1beta1::ListenRequest, ::google::firestore::v1beta1::ListenResponse>(
          std::mem_fn(&Firestore::Service::Listen), this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Firestore_method_names[12],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Firestore::Service, ::google::firestore::v1beta1::ListCollectionIdsRequest, ::google::firestore::v1beta1::ListCollectionIdsResponse>(
          std::mem_fn(&Firestore::Service::ListCollectionIds), this)));
}

Firestore::Service::~Service() {
}

::grpc::Status Firestore::Service::GetDocument(::grpc::ServerContext* context, const ::google::firestore::v1beta1::GetDocumentRequest* request, ::google::firestore::v1beta1::Document* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::ListDocuments(::grpc::ServerContext* context, const ::google::firestore::v1beta1::ListDocumentsRequest* request, ::google::firestore::v1beta1::ListDocumentsResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::CreateDocument(::grpc::ServerContext* context, const ::google::firestore::v1beta1::CreateDocumentRequest* request, ::google::firestore::v1beta1::Document* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::UpdateDocument(::grpc::ServerContext* context, const ::google::firestore::v1beta1::UpdateDocumentRequest* request, ::google::firestore::v1beta1::Document* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::DeleteDocument(::grpc::ServerContext* context, const ::google::firestore::v1beta1::DeleteDocumentRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::BatchGetDocuments(::grpc::ServerContext* context, const ::google::firestore::v1beta1::BatchGetDocumentsRequest* request, ::grpc::ServerWriter< ::google::firestore::v1beta1::BatchGetDocumentsResponse>* writer) {
  (void) context;
  (void) request;
  (void) writer;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::BeginTransaction(::grpc::ServerContext* context, const ::google::firestore::v1beta1::BeginTransactionRequest* request, ::google::firestore::v1beta1::BeginTransactionResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::Commit(::grpc::ServerContext* context, const ::google::firestore::v1beta1::CommitRequest* request, ::google::firestore::v1beta1::CommitResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::Rollback(::grpc::ServerContext* context, const ::google::firestore::v1beta1::RollbackRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::RunQuery(::grpc::ServerContext* context, const ::google::firestore::v1beta1::RunQueryRequest* request, ::grpc::ServerWriter< ::google::firestore::v1beta1::RunQueryResponse>* writer) {
  (void) context;
  (void) request;
  (void) writer;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::Write(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::google::firestore::v1beta1::WriteResponse, ::google::firestore::v1beta1::WriteRequest>* stream) {
  (void) context;
  (void) stream;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::Listen(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::google::firestore::v1beta1::ListenResponse, ::google::firestore::v1beta1::ListenRequest>* stream) {
  (void) context;
  (void) stream;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Firestore::Service::ListCollectionIds(::grpc::ServerContext* context, const ::google::firestore::v1beta1::ListCollectionIdsRequest* request, ::google::firestore::v1beta1::ListCollectionIdsResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}


}  // namespace google
}  // namespace firestore
}  // namespace v1beta1

