Firebase 如何在Firestore的多个位置更新头像/照片URL?
在Firestore中,当用户更改化身时,我尝试在多个位置更新化身(photoUrl) 数据结构: 云功能:Firebase 如何在Firestore的多个位置更新头像/照片URL?,firebase,google-cloud-firestore,google-cloud-functions,avatar,Firebase,Google Cloud Firestore,Google Cloud Functions,Avatar,在Firestore中,当用户更改化身时,我尝试在多个位置更新化身(photoUrl) 数据结构: 云功能: exports.updateAvatars = functions.firestore.document('users/{userID}').onUpdate((change, context) => { const userID = context.params.userID; const imageURL = change.after.data().avatar
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);
});
通过这个云功能,我可以观察用户更新的变化。当用户更改头像时,我得到了用户ID和照片URL。现在我想更新参与者UID等于用户ID的所有“TODO”。您可以使用
数组\u contains
操作符进行查询。这允许您在文档中搜索数组值
如果找到文档,则必须更新所有文档的URL,并将更新后的文档写回数据库
但这会导致大量不必要的写入,尤其是当todos
集合变得更大,并且您希望归档todos
数据时
更简单的解决方案:
我怀疑一个待办事项列表没有超过10个用户,如果是这样的话,那么保存一些文档读取会很麻烦
我建议您只加载在待办事项列表上显示化身所需的所有用户文档。您可以使用
数组\u contains
操作符进行查询。这允许您在文档中搜索数组值
如果找到文档,则必须更新所有文档的URL,并将更新后的文档写回数据库
但这会导致大量不必要的写入,尤其是当todos
集合变得更大,并且您希望归档todos
数据时
更简单的解决方案:
我怀疑一个待办事项列表没有超过10个用户,如果是这样的话,那么保存一些文档读取会很麻烦
我建议您只需加载在待办事项列表上显示化身所需的所有用户文档