假设我在以下ref('/users/{userId}/items/{newItem}')
上触发事件我想从通配符userId
我尝试过var token = event.params.userId.token
,但它返回为未定义
有什么建议?
在Firestore中您可以使用此。
exports.getUser = functions.firestore
.document('users/{userId}').onWrite((change, context) => {
let userId = context.params.userId;
//...
});
Token
不是从trigger
事件自动返回的参数。在触发通配符中,仅返回直接与通配符相对应的参数。因此,如果您想使用
var userId = event.params.userId
然后在功能内部您可以做另一个Promise
return admin.database().ref(/users/userId/token).once('value').then(data => {
//do something here
})
这将帮助您获得令牌。或者,如果您想在一步中进行操作,则可以使用用户ID作为通配符尝试以下操作。
return admin.database().ref(/users/{userId}/token).once('value').then(data => {
//do something here
})
但是,在这里您将收到多个令牌,然后您必须通过孩子迭代以确定哪种userId
与您相关
您可以找到这样的通配值
wildCardValue = context.params.wildCardName