Class CollectionReference (7.4.0)

A CollectionReference object can be used for adding documents, getting document references, and querying for documents (using the methods inherited from [Query]Query).

CollectionReference Query

Inheritance

Query<AppModelType, DbModelType> > CollectionReference

Package

@google-cloud/firestore

Constructors

(constructor)(firestore, path, converter)

constructor(firestore: Firestore, path: ResourcePath, converter?: firestore.FirestoreDataConverter<AppModelType, DbModelType>);

Constructs a new instance of the CollectionReference class

Parameters
NameDescription
firestore Firestore

The Firestore Database client.

path ResourcePath

The Path of this collection.

converter FirebaseFirestore.FirestoreDataConverter<AppModelType, DbModelType>

Properties

id

get id(): string;

The last path element of the referenced collection.

{string} CollectionReference#id

Example

let collectionRef = firestore.collection('col/doc/subcollection');
console.log(`ID of the subcollection: ${collectionRef.id}`);

parent

get parent(): DocumentReference | null;

A reference to the containing Document if this is a subcollection, else null.

{DocumentReference|null} CollectionReference#parent

Example

let collectionRef = firestore.collection('col/doc/subcollection');
let documentRef = collectionRef.parent;
console.log(`Parent name: ${documentRef.path}`);

path

get path(): string;

A string representing the path of the referenced collection (relative to the root of the database).

{string} CollectionReference#path

Example

let collectionRef = firestore.collection('col/doc/subcollection');
console.log(`Path of the subcollection: ${collectionRef.path}`);

Methods

add(data)

add(data: firestore.WithFieldValue<AppModelType>): Promise<DocumentReference<AppModelType, DbModelType>>;

Add a new document to this collection with the specified data, assigning it a document ID automatically.

Parameter
NameDescription
data FirebaseFirestore.WithFieldValue<AppModelType>

An Object containing the data for the new document.

Returns
TypeDescription
Promise<DocumentReference<AppModelType, DbModelType>>

{Promise.

Example

let collectionRef = firestore.collection('col');
collectionRef.add({foo: 'bar'}).then(documentReference => {
  console.log(`Added document with name: ${documentReference.id}`);
});

doc()

doc(): DocumentReference<AppModelType, DbModelType>;
Returns
TypeDescription
DocumentReference<AppModelType, DbModelType>

doc(documentPath)

doc(documentPath: string): DocumentReference<AppModelType, DbModelType>;
Parameter
NameDescription
documentPath string
Returns
TypeDescription
DocumentReference<AppModelType, DbModelType>

isEqual(other)

isEqual(other: firestore.CollectionReference<AppModelType, DbModelType>): boolean;

Returns true if this CollectionReference is equal to the provided value.

Parameter
NameDescription
other FirebaseFirestore.CollectionReference<AppModelType, DbModelType>

The value to compare against. {boolean} true if this CollectionReference is equal to the provided value.

Returns
TypeDescription
boolean

listDocuments()

listDocuments(): Promise<Array<DocumentReference<AppModelType, DbModelType>>>;

Retrieves the list of documents in this collection.

The document references returned may include references to "missing documents", i.e. document locations that have no document present but which contain subcollections with documents. Attempting to read such a document reference (e.g. via .get() or .onSnapshot()) will return a DocumentSnapshot whose .exists property is false.

{Promise<DocumentReference[]>} The list of documents in this collection.

Returns
TypeDescription
Promise<Array<DocumentReference<AppModelType, DbModelType>>>
Example

let collectionRef = firestore.collection('col');

return collectionRef.listDocuments().then(documentRefs => {
   return firestore.getAll(...documentRefs);
}).then(documentSnapshots => {
   for (let documentSnapshot of documentSnapshots) {
      if (documentSnapshot.exists) {
        console.log(`Found document with data: ${documentSnapshot.id}`);
      } else {
        console.log(`Found missing document: ${documentSnapshot.id}`);
      }
   }
});

withConverter(converter)

withConverter(converter: null): CollectionReference;
Parameter
NameDescription
converter null
Returns
TypeDescription
CollectionReference

withConverter(converter)

withConverter<NewAppModelType, NewDbModelType extends firestore.DocumentData = firestore.DocumentData>(converter: firestore.FirestoreDataConverter<NewAppModelType, NewDbModelType>): CollectionReference<NewAppModelType, NewDbModelType>;
Parameter
NameDescription
converter FirebaseFirestore.FirestoreDataConverter<NewAppModelType, NewDbModelType>
Returns
TypeDescription
CollectionReference<NewAppModelType, NewDbModelType>
Type Parameters
NameDescription
NewAppModelType
NewDbModelType