如何从Firebase Cloud功能中获取通配符的数据



假设我在以下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

最新更新