Javascript 角度增量事务
我很难增加帖子“喜欢”的数量。以下是我现在的情况:Javascript 角度增量事务,javascript,firebase,google-cloud-firestore,angularfire5,Javascript,Firebase,Google Cloud Firestore,Angularfire5,我很难增加帖子“喜欢”的数量。以下是我现在的情况: 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 = {
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用于云Firestore上的事务。虽然这两个数据库都是Firebase的一部分,但它们完全不同,您不能从一个数据库到另一个数据库使用API 要了解有关如何在Cloud Firestore上运行事务的更多信息,请参阅文档中的 它看起来像这样:
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);
});
怎么了?好的,我知道你要去哪里了。但是,我得到了错误“ReferenceError:找不到变量:db”。。有什么想法吗?这只是对Firebase的引用,通常使用
var db=Firebase.firestore()之类的东西初始化代码>。Firebase文档中介绍了这一点。