У меня проблемы с увеличением количества лайков к посту. Вот что у меня есть прямо сейчас:
addLike(pid, uid) {
const data = {
uid: uid,
};
this.afs.doc('posts/' + pid + '/likes/' + uid).set(data)
.then(() => console.info('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?
Что мне здесь не хватает? Я уверен, что мой путь верен ..
заранее спасибо



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны использовать API базы данных Firebase Realtime для транзакций в Cloud 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.info("Transaction successfully committed!");
}).catch(function(error) {
console.info("Transaction failed: ", error);
});
Хорошо, я вижу, куда ты идешь. Однако я получаю сообщение об ошибке "ReferenceError: Can't find variable: db" .. Есть мысли?
Это просто ссылка на Firebase, обычно инициализируемую чем-то вроде var db = firebase.firestore();. Это описано в Начать в документации Firebase.
в чем ошибка?