Skip to content

Group

The Group class represents a collection group in the database.

You access the groups using the groups.

interface Comment {
text: string;
}
const db = schema(($) => ({
users: $.collection<User>().sub({
posts: $.collection<UserPost>().sub({
comments: $.collection<Comment>(),
}),
}),
posts: $.collection<Post>().sub({
comments: $.collection<Comment>(),
}),
}));
groups(db).comments;
//=> Group<Comment>

Read more about the collection groups

Read more about the groups function

Collection group on the Firebase Docs website

type

The entity type.

groups(db).comments;
//=> "group"

name

The group name.

groups(db).comments;
//=> "comments"

all

The method allows to get all documents in the collection:

await groups(db).comments.all();
//=> Doc<Comment>[]

Read more about the all method

query

The method allows to query documents in the collection:

await groups(db).comments.query(($) => $.field("text").eq("Hello"));
//=> Doc<Comment>[]

Read more about the query method

count

The method allows counting documents in the collection:

await groups(db).comments.count();
//=> 420

Read more about the count method

sum

The method enables summing the collection field values:

await groups(db).comments.sum("age");
//=> 42069

Read more about the sum method

average

The method allows to calculate the average of collection field values:

await groups(db).comments.average("age");
//=> 42

Read more about the sum method

as

⚠️ Available starting with v10.7.0

The method resolves Typesaurus.SharedGroup if the model extends the given type. Otherwise, it resolves unknown preventing the usage of incompatible models:

rename(groups(db).comments.as<TextFields>());

It allows sharing functionality across the db entities in a type-safe way.

Read more about sharing functionality

Read more about the as method