jsk*_*dd3 9 javascript firebase google-cloud-firestore
我有一个名为'categories'的集合,其中包含ID为5gF5FqRPvdroRF8isOwd的单个文档.
我有另一个名为'门票'的系列.每个故障单都有一个引用字段,用于将故障单分配给特定类别.
票证集合中的字段称为"类别",字段类型为reference.
在下面的代码中,categoryDocId是我要查询的类别的文档ID.
const categoryDocID = `5gF5FqRPvdroRF8isOwd`;
const files = await firebase
.firestore()
.collection('tickets')
.where('category', '==', categoryDocID)
.get();
Run Code Online (Sandbox Code Playgroud)
为什么files.length返回0?
为了进行测试,我将category字段类型更改为字符串,并将其设置为类别ID而不是直接引用.这正确地返回了分配给该类别的票证,这使我相信它是关于我如何查询reference字段的.
Ren*_*nec 29
正如你会读到这里的文档,参考数据类型用于存储DocumentReferences.
如果要在查询中使用它,则不能使用简单的字符串,也不能使用文档的UID(即'5gF5FqRPvdroRF8isOwd'),也不能使用存储在字段中的字符串值(即'/categories/5gF5FqRPvdroRF8isOwd').
您必须构建DocumentReference并在查询中使用它,如下所示:
const categoryDocRef = firebase.firestore()
.collection('categories')
.doc('5gF5FqRPvdroRF8isOwd');
const files = await firebase
.firestore()
.collection('tickets')
.where('category', '==', categoryDocRef)
.get();
Run Code Online (Sandbox Code Playgroud)
小智 7
您必须使用“categories/5gF5FqRPvdroRF8isOwdand”创建文档引用,然后在查询中使用它:
import { doc, query, collection, where, getDocs } from "firebase/firestore";
const categoryDocRef = doc(db, "5gF5FqRPvdroRF8isOwd");
const q = query(
collection(db, "tickets"),
where("category", "==", categoryDocRef)
);
const ticketDocsSnap = await getDocs(q);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4995 次 |
| 最近记录: |