Firebase 如何在Firestore的多个位置更新头像/照片URL?

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

在Firestore中,当用户更改化身时,我尝试在多个位置更新化身(photoUrl)

数据结构:

云功能:

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个用户,如果是这样的话,那么保存一些文档读取会很麻烦

我建议您只需加载在待办事项列表上显示化身所需的所有用户文档