Firebase firestore更改未触发

Firebase firestore更改未触发,firebase,google-cloud-firestore,google-cloud-functions,Firebase,Google Cloud Firestore,Google Cloud Functions,我觉得我至少应该看到一个错误或者。。如果运气特别好,那就是成功。我在/sampleData/metrics/{uid}/{document}上有一个事件设置,您可以在这里看到: 请注意,触发器不包含前导的/。在我的第一次部署中,代码中也没有指定它。当我第一次测试时没有看到调用时,我改变了这一点,但是console.firebase.google.com中的文本没有改变。。。但是,后续部署看起来确实完整: === Deploying to 'THIS PROJECT'... i deploy

我觉得我至少应该看到一个错误或者。。如果运气特别好,那就是成功。我在
/sampleData/metrics/{uid}/{document}
上有一个事件设置,您可以在这里看到:

请注意,触发器不包含前导的
/
。在我的第一次部署中,代码中也没有指定它。当我第一次测试时没有看到调用时,我改变了这一点,但是console.firebase.google.com中的文本没有改变。。。但是,后续部署看起来确实完整:

=== Deploying to 'THIS PROJECT'...

i  deploying functions
i  functions: ensuring necessary APIs are enabled...
✔  functions: all necessary APIs are enabled
i  functions: preparing . directory for uploading...
i  functions: packaged . (172.19 KB) for uploading
✔  functions: . folder uploaded successfully
i  functions: updating Node.js 8 function onAddLocation(us-central1)...
i  functions: updating Node.js 8 function onAddMetric(us-central1)...
✔  functions[onAddLocation(us-central1)]: Successful update operation. 
✔  functions[onAddMetric(us-central1)]: Successful update operation. 

✔  Deploy complete!

Please note that it can take up to 30 seconds for your updated functions to propagate.
Project Console: https://console.firebase.google.com/project/THIS PROJECT/overview
✨  Done in 51.23s.
我们还可以看到我的示例应用程序正在添加数据:

但当我添加数据时,我看不到我的函数被触发。“功能->使用情况”选项卡上的计数保持为0,甚至几分钟后:

我的函数位于节点8中,并使用async/await,但package.json和firebase.json都指定

"engines": {
  "node": "8"
},
笔记:
添加了用法选项卡的屏幕截图,以显示
控制台.log
可能不会说什么。

由于功能仪表板显示触发器“ref.write”,这意味着您的云功能是在写入实时数据库时触发的,而不是写入云Firestore。它们是Firebase提供的两种不同的数据库服务

您必须根据以下文档调整代码:

例如:

exports.firestoreTrigger = functions.firestore
  .document('/sampleData/metrics/{uid}/{document}')
  .onCreate((snapshot, context) => {
    const msgData = snapshot.data();
    console.log(msgData);
    return null;
  });

由于您的功能仪表板显示触发器“ref.write”,这意味着您的云功能是在写入实时数据库时触发的,而不是写入云Firestore时触发的。它们是Firebase提供的两种不同的数据库服务

您必须根据以下文档调整代码:

例如:

exports.firestoreTrigger = functions.firestore
  .document('/sampleData/metrics/{uid}/{document}')
  .onCreate((snapshot, context) => {
    const msgData = snapshot.data();
    console.log(msgData);
    return null;
  });

您可以在函数中使用
console.log()
,然后单击“函数”仪表板中的“日志”选项卡以验证是否触发了它们。事件发生后,通常需要30秒左右的时间才能看到web仪表板中显示的日志。@miles_b
console.log
调用可能需要调用该函数才能发生。。在某种程度上我错了吗?您可以在函数中使用
console.log()
,然后单击“函数”面板中的“日志”选项卡以验证它们是否被触发。事件发生后,通常需要30秒左右的时间才能看到web仪表板中显示的日志。@miles_b
console.log
调用可能需要调用该函数才能发生。。在某种程度上我错了吗?谢谢。对于那些犯了与我相同错误的人,在更改触发器后重新部署时,我得到了
⚠  函数:无法更新函数onAddLocation HTTP错误:400,不允许更改函数触发器类型或事件提供程序
——因此我必须先从控制台删除函数。谢谢。对于那些犯了与我相同错误的人,在更改触发器后重新部署时,我得到了
⚠  函数:无法更新函数onAddLocation HTTP错误:400,不允许更改函数触发器类型或事件提供程序
——因此我必须先从控制台删除函数。