/
firebase-admin-firestore.service.ts
70 lines (56 loc) · 2.11 KB
/
firebase-admin-firestore.service.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import { Injectable } from '@nestjs/common';
import * as admin from 'firebase-admin';
@Injectable()
export class FirebaseFirestoreService implements FirebaseFirestore.Firestore {
constructor(public readonly app: admin.app.App) {}
get firestore() {
if (!this.app) {
throw new Error('Firebase instance is undefined.');
}
return this.app.firestore();
}
settings(settings: FirebaseFirestore.Settings): void {
return this.firestore.settings(settings);
}
collection(collectionPath: string): FirebaseFirestore.CollectionReference {
return this.firestore.collection(collectionPath);
}
doc(documentPath: string): FirebaseFirestore.DocumentReference {
return this.firestore.doc(documentPath);
}
collectionGroup(collectionId: string): FirebaseFirestore.CollectionGroup {
return this.firestore.collectionGroup(collectionId);
}
getAll(
...documentRefsOrReadOptions: (FirebaseFirestore.DocumentReference | FirebaseFirestore.ReadOptions)[]
): Promise<FirebaseFirestore.DocumentSnapshot[]> {
return this.firestore.getAll(...documentRefsOrReadOptions);
}
terminate(): Promise<void> {
return this.firestore.terminate();
}
listCollections(): Promise<FirebaseFirestore.CollectionReference[]> {
return this.firestore.listCollections();
}
runTransaction<T>(
updateFunction: (transaction: FirebaseFirestore.Transaction) => Promise<T>,
transactionOptions?: { maxAttempts?: number },
): Promise<T> {
return this.firestore.runTransaction(updateFunction, transactionOptions);
}
batch(): FirebaseFirestore.WriteBatch {
return this.firestore.batch();
}
bulkWriter(options?: FirebaseFirestore.BulkWriterOptions): FirebaseFirestore.BulkWriter {
return this.firestore.bulkWriter(options);
}
bundle(bundleId?: string): FirebaseFirestore.BundleBuilder {
return this.firestore.bundle(bundleId);
}
recursiveDelete(
ref: FirebaseFirestore.CollectionReference<unknown> | FirebaseFirestore.DocumentReference<unknown>,
bulkWriter?: FirebaseFirestore.BulkWriter,
): Promise<void> {
return this.firestore.recursiveDelete(ref, bulkWriter);
}
}