【问题标题】:How can retrieve {pushId} with firebase cloud functions?如何使用 Firebase 云功能检索 {pushId}?
【发布时间】:2017-10-28 06:11:07
【问题描述】:

我正在学习 firebase 云功能。我有一个看起来像这样的函数:

exports.gameLoopBeing = functions.database.ref('/tables/{pushId}/gamestarted')
    .onWrite(event => {
    //I want to retrieve the pushID        
    console.log(event.data.pushID);

});

event.data.pushID 显然不起作用。如何检索pushID?我查看了docs 并没有找到任何东西。

对于那些不知道 pushId 的人。此函数侦听 /table 内元素内所做的每一个更改。例如:

  • 在 /table/1 中 pushId 为 1
  • 在 /table/2 中 pushId 为 2
  • 在 /table/N 中 pushID 为 N

【问题讨论】:

    标签: firebase google-cloud-functions firebase-admin


    【解决方案1】:
    exports.gameLoopBeing = functions.database.ref('/tables/{pushId}/gamestarted')
         .onWrite((change, context) => {
         //I want to retrieve the pushID        
          console.log(context.params.pushId);
        });
    

    【讨论】:

    • 虽然这段代码可以回答问题,但最好包含一些上下文,解释如何它的工作原理和何时 i> 使用它。从长远来看,纯代码的答案没有用处。
    • onWrite() 在 firebase 实时数据库中创建、更新或删除数据时触发。它将响应两个参数,第一个参数是一个 Change 对象,其中包含两个代表数据的快照触发事件前后的状态。 const before = change.before.val();const after = change.after.val();供参考[firebase.google.com/docs/functions/database-events]
    【解决方案2】:

    引用路径中的通配符在事件params对象中提供:

    exports.gameLoopBeing = functions.database.ref('/tables/{pushId}/gamestarted')
        .onWrite(event => {
        //I want to retrieve the pushID        
        console.log(event.params.pushId);
    
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-09
      • 2019-10-09
      • 2019-01-03
      • 2019-07-18
      • 1970-01-01
      • 2020-06-09
      • 2019-04-16
      相关资源
      最近更新 更多