Я новичок в Firebase и читаю документы для изучения.
В настоящее время я использую Firestore вместо базы данных и, честно говоря, я не уверен в преимуществах и недостатках каждого из них.
В своих руководствах по чтению и записи данных в базу данных они имеют следующий код относительно транзакций :
function toggleStar(postRef, uid) {
postRef.transaction(function(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;
});
}
, который предназначен дляв этом случае смягчите условия гонки / искажения для переменной stars
.
Мой вопрос состоит в том, что эквивалент Firestore transaction
например
import firebase from 'firebase'
const postId = 1
const firestorePostRef = firebase.firestore().collection('posts').doc(postId)
// throws an error that firestorePostRef.transaction is not defined
firestorePostRef.transaction( (post) => {
if (post) {
// ...
}
})