Firebase 访问firestore中文档内部的集合
我有一个文档,里面有一个名为Firebase 访问firestore中文档内部的集合,firebase,google-cloud-firestore,google-cloud-functions,Firebase,Google Cloud Firestore,Google Cloud Functions,我有一个文档,里面有一个名为亲戚的集合。在云函数中,我有此文档的onUpdate()listener。一旦更改了某些内容,我希望在文档中访问该集合。还有收藏中的文档亲属 下面是它的样子: 我试过的 exports.UpdateLocations=functions.firestore.document(“users/{userID}”).onUpdate((更改,上下文)=>{ const userEmail=change.after.data().email; const prevLoca
亲戚的集合。在云函数中,我有此文档的onUpdate()
listener。一旦更改了某些内容,我希望在文档中访问该集合。还有收藏中的文档亲属
下面是它的样子:
我试过的
exports.UpdateLocations=functions.firestore.document(“users/{userID}”).onUpdate((更改,上下文)=>{
const userEmail=change.after.data().email;
const prevLocation=change.before.data().userLocation;
const currentLocation=change.after.data().userLocation;
if(prevLocation==currentLocation)返回0;
if(change.after.data().userType.toString()=“患者”){
const userLocation=change.after.data().userLocation;
const relatives=change.after.data().relatives;
log(“用户当前位置:“+userLocation”);
console.log(“亲戚:+亲戚”);
}
返回;
});
我想访问亲戚及其文档。因此,我可以搜索和比较字段并有目的地更新它们。要从文档快照
中获取子集合,您必须首先获取该快照文档的文档引用
,然后在该快照下找到集合引用
代码:
change.after.ref.collection("relatives")
在这里:
change.after
提供修改文档的DocumentSnapshot
change.after.ref
然后为您提供该文档的DocumentReference
,从而确定其在数据库中的位置
change.after.ref.collection(“亲戚”)
然后将CollectionReference
提供给文档的亲戚子集合
因此,从这些子集合获取数据您必须实际加载该数据,它尚未包含在传递给函数的change
对象中
因此,如果您想加载触发该函数的用户的所有亲属,它将类似于:
let relativesRef = change.after.ref.collection("relatives");
return relatives.get().then((querySnapshot) => {
querySnapshot.forEach((relativeDoc) => {
console.log(doc.id, doc.data().relativeaccount);
});
});
你能不能用代码来说明你已经做了什么以及你在哪里遇到了困难,而不是用文字来描述你正在尝试做什么?这将使得更有可能有人告诉你哪里出了问题,或者帮你完成。我没有给出代码块的原因是我基本上坚持访问文档中的集合。我改变了我的结构,所有以前的代码都变得一团糟。但是如果给它带来不同,我现在就加上它。太好了!非常感谢你,弗兰克。这就是我要找的。