For example I have dynamic filter list for my list of product, from that filter list send https request to cloud function. then trying to set Multiple conditional where clauses from that request
Multiple conditional where clauses work in local firebase app, but not inside cloud function -- Update Code --
import * as functions from "firebase-functions";
import * as admin from "firebase-admin";
import { Query } from "@google-cloud/firestore"; // update code
const cors = require("cors")({
origin: true
});
admin.initializeApp();
const settings = { timestampsInSnapshots: true };
admin.firestore().settings(settings);
const database = admin.firestore();
export const getProduct = functions.https.onRequest(
(request, response) => {
return cors(request, response, async () => {
try {
let productRef = database.collection("product") as Query; // update code
if(request.query.brand){
productRef =productRef.where("brand", "==", request.query.brand)
}
if(request.query.lifeStyle){
productRef =productRef.where("lifeStyle", "==", request.query.lifeStyle)
}
const productsQuery = await productRef.get();
const products = productsQuery.docs.map(
docRef => ({
id: docRef.id,
...docRef.data()
})
);
response.status(200).send(products);
} catch (error) {
response.status(500).send(error);
}
});
}
);
after compile display error on console [ts] Type 'Query' is not assignable to type 'CollectionReference'. [2322]