gpt4 book ai didi

javascript - Angularfire 增量交易

转载 作者:行者123 更新时间:2023-12-03 01:12:31 29 4
gpt4 key购买 nike

我无法增加帖子“点赞”的数量。以下是我现在拥有的:

addLike(pid, uid) {
const data = {
uid: uid,
};
this.afs.doc('posts/' + pid + '/likes/' + uid).set(data)
.then(() => console.log('post ', pid, ' liked by user ', uid));

const totalLikes = {
count : 0
};
const likeRef = this.afs.collection('posts').doc(pid);
.query.ref.transaction((count => {
if (count === null) {
return count = 1;
} else {
return count + 1;
}
}))
}

这显然会引发错误。

我的目标是“喜欢”帖子并在另一个位置增加“计数器”。可能作为每个 Pid 的字段?

我在这里缺少什么?我确信我的道路是正确的..

提前致谢

最佳答案

您将使用 Firebase 实时数据库 API 来处理 Cloud Firestore 上的事务。虽然这两个数据库都是 Firebase 的一部分,但它们完全不同,并且您无法使用其中一个数据库的 API。

要详细了解如何在 Cloud Firestore 上运行事务,请参阅 updating data with transactions在文档中。

它看起来像这样:

return db.runTransaction(function(transaction) {
// This code may get re-run multiple times if there are conflicts.
return transaction.get(likeRef).then(function(likeDoc) {
if (!likeDoc.exists) {
throw "Document does not exist!";
}

var newCount = (likeDoc.data().count || 0) + 1;
transaction.update(likeDoc, { count: newCount });
});
}).then(function() {
console.log("Transaction successfully committed!");
}).catch(function(error) {
console.log("Transaction failed: ", error);
});

关于javascript - Angularfire 增量交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52154620/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com