在Firestore中,当用户更改头像时,我正在尝试在多个位置更新头像(photoUrl)。
数据结构:https://i.imgur.com/yOAgXwV.png
云功能:
exports.updateAvatars = functions.firestore.document('users/{userID}').onUpdate((change, context) => {
const userID = context.params.userID;
const imageURL = change.after.data().avatar;
console.log(userID);
console.log(imageURL);
});
借助此云功能,我正在监视用户更新更改。当用户更改头像时,我得到了userID和照片URL。现在,我要更新参与者UID等于userID的所有“待办事项”。
答案 0 :(得分:0)
您可以使用array_contains
运算符进行查询。这样,您就可以在文档中搜索数组值。
https://firebase.google.com/docs/firestore/query-data/queries#array_membership
如果找到了文档,则必须更新所有文档上的URL,并将更新后的文档写回到数据库中。
但这会导致很多不必要的写操作,尤其是在您的todos
集合变大并且您想要存档todos
数据的情况下。
更简单的解决方案:
我怀疑如果一个待办事项列表没有10个以上的用户,那么保存一些文档读取件会很麻烦。
我建议您只加载需要在待办事项列表上显示头像的所有用户文档。