FirebaseExtended / reactfire

Hooks, Context Providers, and Components that make it easy to interact with Firebase.

Home Page:https://firebaseopensource.com/projects/firebaseextended/reactfire/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support withConverter

louis030195 opened this issue · comments

Version info

React: 17.0.2

Firebase: 8.3.1

ReactFire: 3.0.0

Expected behavior

export const converter = <T>():
    firebase.firestore.FirestoreDataConverter<T> => ({
    toFirestore: (data: Partial<T>) => data,
    fromFirestore: (snap: firebase.firestore.QueryDocumentSnapshot) =>
        snap.data() as T,
  });

interface Foo {}
const FooComponent = (props: any) => {
  const fs = useFirestore();
  const foos = useFirestoreCollection(
      fs.collection("foos")
          .withConverter(converter<Foo>())
  );
 // foos type ObservableStatus<firebase.firestore.QuerySnapshot<Foo>>
}

Actual behavior

export const converter = <T>():
    firebase.firestore.FirestoreDataConverter<T> => ({
    toFirestore: (data: Partial<T>) => data,
    fromFirestore: (snap: firebase.firestore.QueryDocumentSnapshot) =>
        snap.data() as T,
  });

interface Foo {}
const FooComponent = (props: any) => {
  const fs = useFirestore();
  const foos = useFirestoreCollection(
      fs.collection("foos")
          .withConverter(converter<Foo>())
  );
  // foos type ObservableStatus<firebase.firestore.QuerySnapshot<firebase.firestore.DocumentData>>
}
commented

Thanks for reporting this, @louis030195. I think this will be an easy fix in ReactFire once FirebaseExtended/rxfire#33 is released

commented

This is fixed now that ReactFire uses RxFire 6.0.3.