【问题标题】:How to run different cloud functions for seperate apps in the same Firebase project?如何在同一个 Firebase 项目中为不同的应用程序运行不同的云功能?
【发布时间】:2020-07-16 02:36:57
【问题描述】:

例如,如果我想使用 functions.auth.user().onUserCreate() 触发器,有没有办法让它为同一个 Firebase 项目中的不同应用程序触发不同的函数?解决此问题的唯一方法是为每个应用创建单独的 Firebase 项目吗?问题是我需要他们访问同一个数据库。

【问题讨论】:

  • Firebase Auth 用户在一个项目中的所有应用之间共享 - 没有“应用”将它们分开。如果不详细说明您正在尝试做的事情,很难知道该给您什么建议。
  • 我想根据用户注册的应用触发不同的云功能。

标签: firebase firebase-authentication google-cloud-functions


【解决方案1】:

在 Cloud Functions 触发器中无法知道用户在创建帐户时使用了哪个应用程序。 Firebase Auth 帐户对于每个项目的多个应用程序没有“所有权”意识。一个项目中的所有应用程序共享具有相同权限的相同用户。

您可以做的是让每个应用在创建帐户后在您的数据库中写入一些独特的内容,然后使用它来确定该用户以后应该做什么。或者,如果您的应用实际上不需要共享同一组用户,则可以使用不同的项目。

【讨论】:

    【解决方案2】:

    我认为可能对您有所帮助的唯一可能性是将您的 Cloud Functions 组织在不同的文件中,然后将在每个项目中加载这些文件。因此,例如,在您的 Project Alpha 中,它将运行 foo.js 文件中的 Cloud Functions,而在 Project Beta 中,它将运行 bar.js 中的函数,其他项目和 Cloud 的逻辑相同函数。

    这样,即使所有用户共享同一个数据库,它也会根据您在应用程序中需要的文件触发功能。您可以在此处的官方文档中查看有关在多个文件中组织 Cloud Functions 并单独调用它们的提示:

    我相信这种方式可能对您有用,因此,我建议您查看文档并尝试将函数拆分为多个文件并仅在其特定应用程序上调用每个特定文件。

    如果这些信息对您有帮助,请告诉我!

    【讨论】:

    • 感谢您提供有关组织功能的信息。我最终使用了 Doug Stevensons 的答案
    猜你喜欢
    • 2021-07-30
    • 2019-11-06
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    相关资源
    最近更新 更多