• Public
  • Public/Protected
  • All

Class GeoFirestore

GeoFirestore represents a Firestore Database and is the entry point for all GeoFirestore operations.


  • GeoFirestore



  • new GeoFirestore(_firestore: Firestore | Firestore): GeoFirestore
  • Parameters

    • _firestore: Firestore | Firestore

      Firestore represents a Firestore Database and is the entry point for all Firestore operations.

    Returns GeoFirestore


  • get native(): Firestore | Firestore


  • Creates a write batch, used for performing multiple writes as a single atomic operation.


    • Optional customKey: string

      Key to use for GeoPoints in a write batch.

    Returns GeoWriteBatch

    A new GeoWriteBatch instance.

  • Gets a GeoCollectionReference instance that refers to the collection at the specified path.


    • collectionPath: string

      A slash-separated path to a collection.

    • Optional customKey: string

      Key to use for GeoPoints in a collection.

    Returns GeoCollectionReference

    A new GeoCollectionReference instance.

  • collectionGroup(collectionId: string): GeoQuery
  • Creates and returns a new GeoQuery that includes all documents in the database that are contained in a collection or subcollection with the given collectionId.


    • collectionId: string

      Identifies the collections to query over. Every collection or subcollection with this ID as the last segment of its path will be included. Cannot contain a slash.

    Returns GeoQuery

    The created GeoQuery.

  • Gets a GeoDocumentReference instance that refers to the document at the specified path.


    • documentPath: string

      A slash-separated path to a document.

    Returns GeoDocumentReference

    The GeoDocumentReference instance.

  • runTransaction(updateFunction: (transaction: Transaction | Transaction) => Promise<any>): Promise<any>
  • Executes the given updateFunction and then attempts to commit the changes applied within the transaction. If any document read within the transaction has changed, the updateFunction will be retried. If it fails to commit after 5 attempts, the transaction will fail.

    Note: The updateFunction passed into runTransaction is a standard Firestore transaction. You should then immediateley create a GeoTransaction to then make your calls to. Below is a small example on how to do that.

    const geofirestore = new GeoFirestore(firebase.firestore());
    const sfDocRef = geofirestore.collection('cities').doc('SF');

    geofirestore.runTransaction((transaction) => {
    // Immediateley create a `GeoTransaction` from the `transaction`
    const geotransaction = new GeoTransaction(transaction);
    // This code may get re-run multiple times if there are conflicts.
    return geotransaction.get(sfDocRef).then((sfDoc) => {
    if (!sfDoc.exists) {
    throw Error('Document does not exist!');
    const newPopulation = sfDoc.data().population + 1;
    geotransaction.update(sfDocRef, { population: newPopulation });


    • updateFunction: (transaction: Transaction | Transaction) => Promise<any>

      The function to execute within the transaction context.

        • (transaction: Transaction | Transaction): Promise<any>
        • Parameters

          • transaction: Transaction | Transaction

          Returns Promise<any>

    Returns Promise<any>

    If the transaction completed successfully or was explicitly aborted (by the updateFunction returning a failed Promise), the Promise returned by the updateFunction will be returned here. Else if the transaction failed, a rejected Promise with the corresponding failure error will be returned.

Generated using TypeDoc