我成功地更新了我的用户的个人资料图片,包括他们的个人资料和所有使用此功能发布的评论:
export const storeUserProfileImage = (url) => {
const { currentUser } = firebase.auth();
firebase.database().ref(`/users/${currentUser.uid}/profilePic`)
.update({ url });
firebase.database().ref('reviews')
.orderByChild('username')
.equalTo('User3')
.once('value', (snapshot) => {
snapshot.forEach((child) => {
child.ref.update({ profilePic: url });
});
});
};
我知道我应该使用原子更新来做到这一点,这样数据就会同时更新(以防用户离开应用程序或出现其他问题(。在查询子值时,我对如何实现这一点感到困惑。
如有任何帮助或指导,我们将不胜感激!
声明一个变量来存储所有更新。在听众的循环中阅读更新时添加更新。循环结束后,运行原子更新。
export const storeUserProfileImage = (url) => {
const { currentUser } = firebase.auth();
firebase.database().ref('reviews')
.orderByChild('username')
.equalTo('User3')
.once('value', (snapshot) => {
var updates = {};
updates[`/users/${currentUser.uid}/profilePic`] = url;
snapshot.forEach((child) => {
updates[`/reviews/${child.key}/profilePic`] = url;
});
firebase.database().ref().update(updates);
});
};