【问题标题】:How can I specify the right document path in cloud functions index.js file?如何在云函数 index.js 文件中指定正确的文档路径?
【发布时间】:2023-03-07 16:09:01
【问题描述】:

因此,我一直在浏览有关 Firestore 文档生存时间的堆栈溢出问题,并希望在我的 iOS 应用中实现该功能。我看到这个 Doug Stevenson 的博客反复出现的链接,展示了如何做到这一点,并按照步骤直到他声明了第一个函数,现在我的文档路径的问题是它是动态的并且所有这些变量和值在我的 Xcode 中的 Swift 文件中。

我在 VSC 中的 functions/index.js 文件中有这段代码,但我很头疼,想弄清楚如何将所有这些东西连接在一起以使其工作。

const functions = require("firebase-functions");
const admin =  require("firebase-admin")
const { CloudTasksClient } = require("@google-cloud/tasks")
admin.initializeApp()

export const OnCreateGothereEvent = functions.firestore.document('school_users/[school_userDocID goes here]/events/[eventDocID goes here]').onCreate()

我不知道该怎么做,试图达到这一点已经足够令人困惑,但非常感谢一些额外的指导。我已经看过一些关于在 Swift 中使用 Cloud Functions 的文档,但我知道要设置实际的任务/功能,您需要使用 Node.js,所以我需要一些指导。提前致谢。

【问题讨论】:

    标签: node.js swift google-app-engine google-cloud-firestore google-cloud-functions


    【解决方案1】:

    您可以在函数定义中使用{} 语法来捕获这些值(即school_userDocIDeventDocID)。

    export const OnCreateGothereEvent = functions.firestore
      .document("/school_users/{schoolID}/events/{eventID}")
      .onWrite(async (change, context) => {
        const schoolID = context.params.schoolID;
        const eventID = context.params.eventID;
    

    【讨论】:

    • 这些字段只是我问题中的示例,在实现您刚刚发送给我的代码时,我是否应该使用 firestore 文档字段的确切名称? @jnpdx
    • { } 中的内容不必精确——可以将其视为变量赋值。它只是要捕获路径的那部分中的任何内容。唯一重要的部分是您在 { } 中的名称必须与您在 .params 之后所说的一致。注意我的 (schoolID -> schoolID) 和 (eventID -> eventID)
    • 注明。谢谢,当一切正常时,我会接受答案。 @jnpdx
    • 大声笑。好笑的故事。我最终放弃了它并使用我在 Swift 中创建的一个函数通过将某个字段与当前日期匹配来删除过期的文档,它有点工作,因为时间不准确,但我知道一旦我修复它,它就会完美美好的。我问了一个关于它的问题,但没有人回答。 @jnpdx
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2011-05-16
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    相关资源
    最近更新 更多