我在Firestore数据库中有一个这样的事件集合:
我想使用云Firestore触发器。当用户参加活动时,活动的容量为-1,并且当此字段更新时,我要自动更新另一个字段(“ rankPoint”)+ 3
要实现此目的,我需要在文档更新时触发一个函数
从Firestore文档中,会是这样
exports.updateUser = functions.firestore
.document('users/{userId}')
.onUpdate((change, context) => {
// Get an object representing the document
// e.g. {'name': 'Marie', 'age': 66}
const newValue = change.after.data();
// ...or the previous value before this update
const previousValue = change.before.data();
// access a particular field as you would any JS property
const name = newValue.name;
// perform desired operations ...
});
就我而言,应该是'events / {eventId}'对吗?但是如何在通配符中获取该eventID?它来自客户端吗?我的意思是在iOS / Android中,我将编写代码以进行更新
db.collection("eventss").document("someEventIDHere").setData(data)
是从客户那里来的吗?
答案 0 :(得分:1)
您的函数将仅交付与已更改的函数模式(用户/ {userId})匹配的文档。在查询其他文档之前,其他文档不可用。因此,如果要从事件集合中获取文档,则必须编写一些代码来访问它,然后从那里决定要做什么。
听起来像您期望有一个eventId通配符,但没有。您在函数中定义的只是userId通配符。其他值将需要从用户文档中提供的数据中得出。