升级到云功能v1.0和我打破了一切

时间:2018-04-13 17:47:14

标签: google-cloud-firestore google-cloud-functions

尝试按照this page上的说明操作,我无法弄清楚如何简单地访问DocumentSnapshot中的数据。

他们并没有真正解释更新onCreate,除了说它与onDelete相同,我无法让它工作。

 exports.mFoo = functions.firestore
    .document('foos/{key}')
    .onCreate((snap, context) => { 

      const bar = snap.data(); // <-- DOESN'T WORK
      console.log(bar); // <-- DOESN'T WORK

    return Promise;
});

我收到以下错误:

  

TypeError:snap.data不是函数   exports.mFoo.functions.firestore.document.onCreate

我确定它非常简单,但我并不是很了解这些东西,而且我已经尝试了大量的东西,没有任何作用。

1 个答案:

答案 0 :(得分:3)

原来我遇到了同样的问题before

在进行任何此类更新之前:

npm install firebase-functions@latest --save
npm install firebase-admin@5.11.0 --save
npm install -g firebase-tools

首先,我必须打开我的package.json文件并删除任何将要更新的依赖项。

这些是我在那里找到的:

 "dependencies": {
    "firebase-admin": "~5.8.1",
    "firebase-functions": "^0.8.1"
  },

将依赖项留空并重新运行要安装的命令后,会出现这些:

 "dependencies": {
    "firebase-admin": "^5.11.0",
    "firebase-functions": "^1.0.1"
  },

显然,安装和升级不会修复这些依赖项,但如果它们不在那里,它们会添加它们。也许有可能通过键入它来修复它但我不知道要放在那里的版本号。

现在(修改过的)代码可以工作:

 exports.mFoo = functions.firestore
    .document('foos/{key}')
    .onCreate((snap, context) => { 

      const bar = snap.data(); // now this works
      console.log(bar.baz); // <-- before I wasn't referring to anything in the snapshot

    return Promise; // I. Promised. Nothing.
});

感谢@Todd Kerpelman指出了正确的方向和@Bob Snyder,因为other post的相同答案也适用于我。