由于 'Firebase App name '[DEFAULT]' 已经存在',无法破坏 Firebase 连接使热 Lambda 失败
Cannot destroy Firebase connections making hot Lambda fail due to 'Firebase App name '[DEFAULT]' already exists'
几个小时以来我一直在尝试我能想到的每一种方法。
基本上我是 运行 一个 AWS Lambda 函数,它在客户端和服务器角色中为我的 Firebase 应用程序做一些工作。
在 Lambda 上,我需要能够反转 firebase.initializeApp(config)
和 firebase.initializeApp(config, 'server')
。我试过 firebase.app('server').delete()
但这似乎不起作用。
在此先感谢您的帮助。
澄清一下,我不能只使用现有连接,因为配置可能会更改。
对 initializeApp
的调用采用可选的应用程序名称。如果未指定应用程序名称,则使用名称 [DEFAULT]
。
要取消初始化应用程序,您需要在应用程序实例上调用 delete
。应用程序实例由 initializeApp
调用返回,或者可以使用 app
函数获取。
也就是说,您可以像这样初始化和取消初始化应用程序:
app = firebase.initializeApp(configuration);
app.delete();
或者像这样:
firebase.initializeApp(configuration);
firebase.app('[DEFAULT]').delete();
请注意,delete
函数 returns 一个在应用程序删除完成时解析的承诺。
或者,您也可以在处理函数之外初始化 Firebase 实例并将其传递下去。这可以防止它被多次调用。
Lambda 喜欢启动一个函数的一个实例,但不断调用它的函数处理程序,这意味着处理程序之外的代码只执行一次。
这可以应用于大多数只允许你运行一个实例的东西。
initializeApp
returns 已初始化的应用程序。
你可以这样做:
const app = firebase.initializeApp(config);
//...
await app.delete();
几个小时以来我一直在尝试我能想到的每一种方法。
基本上我是 运行 一个 AWS Lambda 函数,它在客户端和服务器角色中为我的 Firebase 应用程序做一些工作。
在 Lambda 上,我需要能够反转 firebase.initializeApp(config)
和 firebase.initializeApp(config, 'server')
。我试过 firebase.app('server').delete()
但这似乎不起作用。
在此先感谢您的帮助。
澄清一下,我不能只使用现有连接,因为配置可能会更改。
对 initializeApp
的调用采用可选的应用程序名称。如果未指定应用程序名称,则使用名称 [DEFAULT]
。
要取消初始化应用程序,您需要在应用程序实例上调用 delete
。应用程序实例由 initializeApp
调用返回,或者可以使用 app
函数获取。
也就是说,您可以像这样初始化和取消初始化应用程序:
app = firebase.initializeApp(configuration);
app.delete();
或者像这样:
firebase.initializeApp(configuration);
firebase.app('[DEFAULT]').delete();
请注意,delete
函数 returns 一个在应用程序删除完成时解析的承诺。
或者,您也可以在处理函数之外初始化 Firebase 实例并将其传递下去。这可以防止它被多次调用。
Lambda 喜欢启动一个函数的一个实例,但不断调用它的函数处理程序,这意味着处理程序之外的代码只执行一次。
这可以应用于大多数只允许你运行一个实例的东西。
initializeApp
returns 已初始化的应用程序。
你可以这样做:
const app = firebase.initializeApp(config);
//...
await app.delete();