代码之家  ›  专栏  ›  技术社区  ›  Marcos DaSilva

Firebase触发器onUpdate在更新后返回错误

  •  0
  • Marcos DaSilva  · 技术社区  · 8 年前

    更新到最新的Firebase函数“Firebase admin”:“^5.12.0”, ,“firebase functions”:“^1.0.1和firebase tools 3.18.4,我有以下错误消息,数据库触发器抱怨属性“key”未定义,如何修复此代码

    //这是云功能

    exports.OnBalanceChange = functions.database.ref('/balance/{userID}')
      .onUpdate(event => {
        var userid = event.data.key;
        var eventSnapshot = event.data;
        console.log("user ID is", userid);
    
            return 0;
    
    
      });
    
    
    
    TypeError: Cannot read property 'key' of undefined
        at exports.OnBalanceChange.functions.database.ref.onUpdate.event (/user_code/index.js:760:28)
        at Object.<anonymous> (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:112:27)
        at next (native)
        at /user_code/node_modules/firebase-functions/lib/cloud-functions.js:28:71
        at __awaiter (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:24:12)
        at cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:82:36)
        at /var/tmp/worker/worker.js:700:26
        at process._tickDomainCallback (internal/process/next_tick.js:135:7)
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   Doug Stevenson    8 年前

    请学习Firebase 1.0版云功能的迁移指南: https://firebase.google.com/docs/functions/beta-v1-diff

    具体请参见 this 。您将看到onUpdate的单个参数已转换为两个参数,并且参数的类型已更改。您现在可以使用 change.before.key (假设第一个参数现在为 change 获取已更改文档的id。

    推荐文章