我观看了此视频,以使用事务https://www.youtube.com/watch?v=TPKA88_FmkA更新实时数据库中的数据,但是似乎在Firestore云功能上无法进行事务处理吗?
所以我有这样的Firestore数据,并且我想在子集合中添加新与会者时更新rankPoint。
这是我用来触发该功能的代码:
const functions = require('firebase-functions');
const admin = require('firebase-admin')
admin.initializeApp()
exports.increasePointWhenAddingNewAttendee = functions.firestore
.document('Events/{eventId}/Attendee/{userId}')
.onCreate((snap, context) => {
const eventID = context.params.eventId
const eventRef = snap.ref.firestore.collection('Events').doc(eventID)
// increase rankPoint
return eventRef.transaction(rankPoint => {
return rankPoint + 1
})
});
答案 0 :(得分:1)
您正在观看的视频是关于实时数据库触发器的,这与Firestore触发器有很大的不同。它们没有相同的API。
如果要使用Firestore执行事务,则需要在Firestore对象而不是DocumentReference对象上调用runTransaction。请参阅Firestore transactions的文档。同样,它与Firestore配合使用的方式与实时数据库不同。