nuxt-community / firebase-module

🔥 Easily integrate Firebase into your Nuxt project. 🔥
https://firebase.nuxtjs.org
MIT License
641 stars 99 forks source link

How can I access firebase types? #467

Closed hamishjohnson closed 3 years ago

hamishjohnson commented 3 years ago

I'm trying to create helper functions that involve firebase types

Here's an example for my backend and I'd like something similar in nuxt

function setDoc<T>(
  ref: FirebaseFirestore.DocumentReference,
  data: TypedWriteData<T>,
  options?: WriteOptions,
) {
  const createData = {
    dateCreated: admin.firestore.FieldValue.serverTimestamp(),
    dateUpdated: admin.firestore.FieldValue.serverTimestamp(),
    ...data,
  }

  if (options?.batch) {
    return options.batch.set(ref, createData, { merge: true })
  } else if (options?.transaction) {
    return options.transaction.set(ref, createData, { merge: true })
  } else {
    return ref.set(createData, { merge: true })
  }
}

However, I can't access the type FirebaseFirestore.DocumentReference because FirebaseFirestore is undefined.

I've also tried firebase.firestore.Firestore

my tsconfig types includes "@nuxtjs/firebase"

lesharris commented 3 years ago

You import the firebase namespace from firebase/app then it functions much the same as admin in your backend:

import firebase from 'firebase/app'

someFunc() {
    let timestamp: firebase.firestore.Timestamp
}