如何在GCP Cloud上部署Firestore侦听器功能?



我使用以下方法(源代码)来构建GCP云函数

const functions = require('firebase-functions');
exports.myFunction = functions.firestore
.document('my-collection/{docId}')
.onWrite((change, context) => { /* ... */ });

没有关于如何正确部署到GCP函数的例子,只有Firebase函数。使用常规的gcloud部署像这样的命令将无法工作。

gcloud functions deploy FUNCTION_NAME 
--entry-point ENTRY_POINT 
--runtime RUNTIME 
--trigger-event "providers/cloud.firestore/eventTypes/document.write" 
--trigger-resource "projects/YOUR_PROJECT_ID/databases/(default)/documents/messages/{pushId}"

有什么好主意吗?

您可以通过创建您选择的Cloud Firestore触发器来实现所需的效果

  • 用于云函数(第一代):
  1. 在触发器类型字段中选择Cloud Firestore
  2. 选择事件类型:Write
  3. 指定要触发此函数的文档,例如:users/{doc_id}
  4. 检查失败时重试如果您想重试,如果它没有触发复选框
  5. 点击保存
  6. 根据您的要求修改您的功能
  7. 单击Deploy
  8. 在提供的文档路径上进行修改,在我们的示例中是users/{doc_id}
  9. 查看云功能日志。您将看到函数被触发。
  • 对于云函数(第二代):
  1. 在HTTPS下,在Authentication字段中,根据您是否希望允许对函数进行未经身份验证的调用,选择一个选项。缺省情况下,需要进行认证。

  2. 点击Add Eventarc Trigger(将出现一个模态)

  3. 选择触发类型:第一方

  4. 选择事件提供商:Cloud Firestore

  5. 事件:google.firestore.v1.Firestore.Write

  6. 资源:如果您有文档的确切路径,请选择特定资源,否则您希望使用通配符模式瞄准多个文档选择路径模式

  7. 检查失败时重试如果没有触发则选择重试

  8. 点击保存触发

  9. 单击Next
  10. 根据需要修改函数

  11. 单击部署
  12. 对目标文档进行修改

  13. 查看云功能日志。您将看到函数被触发。

最新更新