How to get data from wildcard in firebase cloud functions

后端 未结 3 1410
时光说笑
时光说笑 2021-01-05 03:06

Assuming that I trigger events on the following ref(\'/users/{userId}/items/{newItem}\') I want to get a value from inside the wildcard userId

相关标签:
3条回答
  • 2021-01-05 03:30

    In firestore you can use this.

    exports.getUser = functions.firestore
        .document('users/{userId}').onWrite((change, context) => {
            let userId = context.params.userId;
            //...
        });
    
    0 讨论(0)
  • 2021-01-05 03:34

    Token is not a parameter returned automatically from trigger events. In trigger wild cards only parameters corresponding directly to the wildcard are returned. So You need to do the following if you want to use the

    var userId = event.params.userId
    

    And then inside the function you can make another Promise

    return admin.database().ref(/users/userId/token).once('value').then(data => { 
    //do something here
     })
    

    This will help you get the token. Or if you want to do it in one step, you can try the following with userID as wild card.

    return admin.database().ref(/users/{userId}/token).once('value').then(data => { 
        //do something here
         })
    

    But here you will receive multiple tokens and then you will have to iterate through the children to decide which userId is of relevance to you

    0 讨论(0)
  • 2021-01-05 03:44

    You can find wildcard values like this

    wildCardValue = context.params.wildCardName
    
    0 讨论(0)
提交回复
热议问题