OR
子句 执行查询。
import { and, or, where } from "firebase/firestore"
import { adminDB } from "./firebase/firebaseAdmin"
// Build the query
let q = adminDB.collection("posts")
if (condition) {
q = q.where(
or(
where("author.id", "==", "myId"),
and(
where("is_draft", "==", false),
where("trashed_at", "==", null),
where("is_disapproved", "==", false)
)
)
)
}
const postsSnap = await q.limit(10).get()
这给了我错误
错误:参数“fieldPath”的值不是有效的字段路径。路径只能指定为字符串或通过 FieldPath 对象。
并指出
where()
块中的 if
子句是罪魁祸首。 ...但我不明白为什么。?
StackOverflow大神们,请帮助我理解我哪里出错了。谢谢!
菜鸟错误..我使用了错误的 JavaScript Web SDK(糟糕!)
这样修复了
import { Filter } from "firebase-admin/firestore"
import { adminDB } from "./firebase/firebaseAdmin"
// Build the query
let q = adminDB.collection("posts")
if (condition) {
q = q.where(
Filter.or(
Filter.where("author.id", "==", "myId"),
Filter.and(
Filter.where("is_draft", "==", false),
Filter.where("trashed_at", "==", null),
Filter.where("is_disapproved", "==", false)
)
)
)
}
const postsSnap = await q.limit(10).get()