Git Product home page Git Product logo

Comments (6)

nmaves avatar nmaves commented on May 31, 2024 4

This is a standard react hooks issue. You need to conditional send the second firebase reference.

const [organisation, loadingOrganisation, errorOrganisation] = useCollection(
    firebase.firestore().collection('organisations').where("members", "array-contains", user.uid),
    {
      snapshotListenOptions: { includeMetadataChanges: true },
    }
  );

  const [projects, loadingProjects, errorProjects] = useCollection(
    organisation && firebase.firestore().collection('organisations').doc(organisation[0].id).collection("projects"),
    {
      snapshotListenOptions: { includeMetadataChanges: true },
    }
  );

from react-firebase-hooks.

benjamin-sommer avatar benjamin-sommer commented on May 31, 2024

Thanks, that worked!

from react-firebase-hooks.

nmaves avatar nmaves commented on May 31, 2024

You're welcome.

from react-firebase-hooks.

chrisbianca avatar chrisbianca commented on May 31, 2024

Closing as this has been answered

from react-firebase-hooks.

ZakKa89 avatar ZakKa89 commented on May 31, 2024

with v5 of this api and v9 of firebase I'm running into issues. Before, I could do something like:

  const [processCollection, loading] = useCollectionData<ProcessDoc>(
    projectId &&
      firebase
        .firestore()
        .collection('projects')
        .doc(projectId)
        .collection('processes')
        // .where("state", "==", "published"),
        .orderBy('index', 'asc'),
    {
      snapshotListenOptions: { includeMetadataChanges: true },
      idField: 'id',
    }
  );

Now I can't do that since I have to set the ref first:

  const projectRef = doc(getFirestore(), 'projects', projectId);

  const processesRef = collection(projectRef, 'processes').withConverter(
    processConverter
  );

  const [processCollection, loading, error] =
    useCollectionData<ProcessDoc>(processesRef);

Any ideas on how to prevent executing the projectRef, processesRef based on if the projectId is truthy? It seems to be a firebase issue but I can't find a solution online.

from react-firebase-hooks.

ZakKa89 avatar ZakKa89 commented on May 31, 2024

I solved it like this but I don't like it.

   const projectRef = projectId && doc(db, 'projects', projectId);

  const processesRef =
    projectRef &&
    collection(projectRef, 'processes').withConverter(processConverter);

  const orderedProcessesQuery =
    processesRef && query(processesRef, orderBy('index', 'asc'));

  const [processCollection, loading, error] = useCollectionData<ProcessDoc>(
    orderedProcessesQuery
  );

from react-firebase-hooks.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.