'Firebase-admin Firestore node.js share logic with modular v9 js sdk
What is the recommended way to share Firestore api logic (between the admin node.js and the js web) when upgrading to the web v9 modular sdk? The way I did it before was just supplying the db (and deleteField) if it was used by a serverless function.
// admin db init
import { FieldValue, getFirestore } from "firebase-admin/firestore"
const FSAdmin = createFirebaseAdminApp(options);
const db = getFirestore(FSAdmin)
That no longer seems to work as if you try to use the getFirestore(FSAdmin)
with the v9 docRef doc(db, collectionName, documentID)
it will give you an error:
FirebaseError: Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore
Solution 1:[1]
It seems like the function getFirestore(FSAdmin) and getFirestore(FSAdmin) does not get what it expects. As I can't see your complete configuration and debug information, it's a bit difficult to tell the full context of the error. As it is stated in the Firebase docs firebase docs, make sure to call initializeApp(firebaseConfig); including the proper configuration before you use Firestore in your app. Also check that you have the latest version of all your Firebase packages installed. I also know that Firebase has recently got quite some library changes, as Firebase also strives to minify itself.
Note that there are two packages:
const { initializeApp } = require('firebase-admin/app');
and
import { initializeApp } from 'firebase/app';
In addition, I could not find createFirebaseAdminApp() and getFirestore() in the current function list of the Firebase docs, so I think they changed the signature completely.
I hope I could help you at least a bit.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 |