in snippets/database-next/read-and-write/rtdb_social_star_transaction.js [10:29]
function toggleStar(uid) {
const db = getDatabase();
const postRef = ref(db, '/posts/foo-bar-123');
runTransaction(postRef, (post) => {
if (post) {
if (post.stars && post.stars[uid]) {
post.starCount--;
post.stars[uid] = null;
} else {
post.starCount++;
if (!post.stars) {
post.stars = {};
}
post.stars[uid] = true;
}
}
return post;
});
}