Skip to content

Commit 6bd10bc

Browse files
authored
Migrate to complete Firebase Modular SDK (#252)
1 parent 726c4d0 commit 6bd10bc

33 files changed

+141
-1859
lines changed

addon/-private/flatten-doc-snapshot.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
import { DocumentSnapshot } from 'firebase/firestore';
2-
import firebase from 'firebase/compat/app';
32

4-
export default function flattenDocSnapshot(
5-
docSnapshot: firebase.firestore.DocumentSnapshot | DocumentSnapshot,
6-
): {
3+
export default function flattenDocSnapshot(docSnapshot: DocumentSnapshot): {
74
id: string,
85
[key: string]: unknown,
96
} {

addon/-private/realtime-tracker.ts

-206
This file was deleted.

addon/adapters/cloud-firestore-modular.ts

+13-16
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,22 @@ import Store from '@ember-data/store';
1414
import {
1515
CollectionReference,
1616
DocumentReference,
17+
Firestore,
1718
Query,
1819
WriteBatch,
1920
} from 'firebase/firestore';
20-
import firebase from 'firebase/compat/app';
2121

2222
import {
2323
collection,
2424
doc,
2525
getDoc,
2626
getDocs,
27+
getFirestore,
2728
query,
2829
where,
2930
writeBatch,
3031
} from 'ember-cloud-firestore-adapter/firebase/firestore';
3132
import { AdapterRecordNotFoundError } from 'ember-cloud-firestore-adapter/utils/custom-errors';
32-
import FirebaseService from 'ember-cloud-firestore-adapter/services/-firebase';
3333
import FirestoreDataManager from 'ember-cloud-firestore-adapter/services/-firestore-data-manager';
3434
import buildCollectionName from 'ember-cloud-firestore-adapter/-private/build-collection-name';
3535
import flattenDocSnapshot from 'ember-cloud-firestore-adapter/-private/flatten-doc-snapshot';
@@ -42,9 +42,9 @@ interface AdapterOption {
4242
isRealtime?: boolean;
4343
queryId?: string;
4444

45-
buildReference?(db: firebase.firestore.Firestore): CollectionReference;
45+
buildReference?(db: Firestore): CollectionReference;
4646
filter?(db: CollectionReference): Query;
47-
include?(batch: WriteBatch, db: firebase.firestore.Firestore): void;
47+
include?(batch: WriteBatch, db: Firestore): void;
4848

4949
[key: string]: unknown;
5050
}
@@ -68,15 +68,12 @@ interface HasManyRelationshipMeta {
6868
options: {
6969
isRealtime?: boolean,
7070

71-
buildReference?(db: firebase.firestore.Firestore, record: unknown): CollectionReference,
71+
buildReference?(db: Firestore, record: unknown): CollectionReference,
7272
filter?(db: CollectionReference | Query, record: unknown): Query,
7373
};
7474
}
7575

7676
export default class CloudFirestoreModularAdapter extends Adapter {
77-
@service('-firebase')
78-
protected declare firebase: FirebaseService;
79-
8077
@service('-firestore-data-manager')
8178
private declare firestoreDataManager: FirestoreDataManager;
8279

@@ -89,7 +86,7 @@ export default class CloudFirestoreModularAdapter extends Adapter {
8986
}
9087

9188
public generateIdForRecord(_store: Store, type: string): string {
92-
const db = this.firebase.firestore();
89+
const db = getFirestore();
9390
const collectionName = buildCollectionName(type);
9491

9592
return doc(collection(db, collectionName)).id;
@@ -134,7 +131,7 @@ export default class CloudFirestoreModularAdapter extends Adapter {
134131
snapshot: Snapshot,
135132
): RSVP.Promise<unknown> {
136133
return new RSVP.Promise((resolve, reject) => {
137-
const db = this.firebase.firestore();
134+
const db = getFirestore();
138135
const collectionRef = this.buildCollectionRef(type.modelName, snapshot.adapterOptions);
139136
const docRef = doc(collectionRef, snapshot.id);
140137
const batch = writeBatch(db);
@@ -183,7 +180,7 @@ export default class CloudFirestoreModularAdapter extends Adapter {
183180
): RSVP.Promise<unknown> {
184181
return new RSVP.Promise(async (resolve, reject) => {
185182
try {
186-
const db = this.firebase.firestore();
183+
const db = getFirestore();
187184
const colRef = collection(db, buildCollectionName(type.modelName));
188185
const querySnapshot = snapshotRecordArray?.adapterOptions?.isRealtime && !this.isFastBoot
189186
? await this.firestoreDataManager.findAllRealtime(type.modelName, colRef)
@@ -241,7 +238,7 @@ export default class CloudFirestoreModularAdapter extends Adapter {
241238

242239
urlNodes.pop();
243240

244-
const db = this.firebase.firestore();
241+
const db = getFirestore();
245242
const docRef = doc(db, urlNodes.join('/'), id);
246243
const modelName = relationship.type;
247244
const docSnapshot = relationship.options.isRealtime && !this.isFastBoot
@@ -292,7 +289,7 @@ export default class CloudFirestoreModularAdapter extends Adapter {
292289
modelName: string,
293290
adapterOptions?: AdapterOption,
294291
): CollectionReference {
295-
const db = this.firebase.firestore();
292+
const db = getFirestore();
296293

297294
return adapterOptions?.buildReference?.(db) || collection(db, buildCollectionName(modelName));
298295
}
@@ -308,13 +305,13 @@ export default class CloudFirestoreModularAdapter extends Adapter {
308305
}
309306

310307
private addIncludeToWriteBatch(batch: WriteBatch, adapterOptions?: AdapterOption): void {
311-
const db = this.firebase.firestore();
308+
const db = getFirestore();
312309

313310
adapterOptions?.include?.(batch, db);
314311
}
315312

316313
private buildWriteBatch(docRef: DocumentReference, snapshot: Snapshot): WriteBatch {
317-
const db = this.firebase.firestore();
314+
const db = getFirestore();
318315
const batch = writeBatch(db);
319316

320317
this.addDocRefToWriteBatch(batch, docRef, snapshot);
@@ -329,7 +326,7 @@ export default class CloudFirestoreModularAdapter extends Adapter {
329326
url: string,
330327
relationship: HasManyRelationshipMeta,
331328
): CollectionReference | Query {
332-
const db = this.firebase.firestore();
329+
const db = getFirestore();
333330

334331
if (relationship.options.buildReference) {
335332
const collectionRef = relationship.options.buildReference(db, snapshot.record);

0 commit comments

Comments
 (0)