Firestore: Mehrere bedingte where-Klauseln

Lesezeit: 2 Minuten

Firestore Mehrere bedingte where Klauseln
rendom

Zum Beispiel habe ich einen dynamischen Filter für meine Bücherliste, wo ich bestimmte Farben, Autoren und Kategorien festlegen kann. Dieser Filter kann mehrere Farben auf einmal und mehrere Kategorien festlegen.

   Book > Red, Blue > Adventure, Detective.

Wie kann ich “wo” bedingt hinzufügen?

  firebase
    .firestore()
    .collection("book")
    .where("category", "==", )
    .where("color", "==", )
    .where("author", "==", )

    .orderBy("date")
    .get()
    .then(querySnapshot => {...

  • Edit: Es funktioniert, wenn Sie neu zuweisen query =Das habe ich vermisst… – Das funktioniert bei mir nicht. Alle where-Aufrufe werden einfach ignoriert. Funktioniert das bei dir noch?

    – Thomas Ebert

    20. Juli 2018 um 12:52 Uhr


  • @JimmyKane Was ist afs? Benutzt du AngularFire? Wenn ja, sind alle Ihre Objekte unterschiedlich. AF packt alles in seine eigenen Typen.

    – Doug Stevenson

    11. Dezember 2018 um 16:54 Uhr

  • Es sollte beachtet werden, dass Sie zwar mehrere Wo mit unterschiedlichen Eigenschaften abfragen können, Sie still kann nicht mehrere Where derselben Eigenschaft abfragen. Am Beispiel Ihrer Frage gibt es immer noch Nein Lösung zu fragen .where("category", "==", "adventure").where("category", "==", "detective")

    – blaytenshi

    27. März 2019 um 23:48 Uhr

  • @pikilon Dies ist nur eine rechthaberische Syntax. Typescript sollte es Ihnen ermöglichen, Variablen neu zu definieren, indem Sie verwenden let sie zu definieren. Ich weiß, dass dies nicht empfohlen wird, da es aufgrund von Bereichsproblemen zu unerwartetem Verhalten führen kann. Wenn Sie nur die Warnung vermeiden möchten, die @ts-ignore wird gut tun. Eine andere Sache, die mir in den Sinn kommt, ist, jedes neue Ergebnis in ein Array zu schieben: const queries = [firebase.firestore().collection("book")]; queries.push(queries[queries.length - 1].where(...)); queries[queries.length - 1].get().then(...). Oder Sie können eine Wrapper-Klasse schreiben … Wählen Sie Ihr Gift 😉

    – Thomas Ebert

    18. Januar 2020 um 17:34 Uhr

  • Sie können jetzt mit dem IN-Operator: firebase.google.com/docs/firestore/query-data/queries

    – Elyx0

    25. Januar 2020 um 18:00 Uhr

868110cookie-checkFirestore: Mehrere bedingte where-Klauseln

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy