一年多来,我一直在使用 Dialogflow 实现内联编辑器进行测试。但突然从过去两天开始,我无法部署它,因为它显示错误 409
项目中区域 us-central1 中的函数 dialogflowFirebaseFulfillment ... 已存在
我还使用几个月前部署的旧代码进行了测试。但同样的结果。大约 2 个月前,我也转移到了节点 10。对于其他代理,它按预期工作正常,但此代理显示问题。
我已经尝试了几个建议,其中大多数与这个问题无关。
为什么它突然开始了,我该如何克服这个问题?
一年多来,我一直在使用 Dialogflow 实现内联编辑器进行测试。但突然从过去两天开始,我无法部署它,因为它显示错误 409
项目中区域 us-central1 中的函数 dialogflowFirebaseFulfillment ... 已存在
我还使用几个月前部署的旧代码进行了测试。但同样的结果。大约 2 个月前,我也转移到了节点 10。对于其他代理,它按预期工作正常,但此代理显示问题。
我已经尝试了几个建议,其中大多数与这个问题无关。
为什么它突然开始了,我该如何克服这个问题?
我找到的解决方案是删除同一项目的firebase功能并在Dialogflow中重新部署该项目。首先将您的代码保存在其他地方。
非常重要的一点是,您需要成为 firebase 项目的管理员或要求您的管理员按照以下步骤操作。编辑器可以执行这些步骤,但您的问题不会得到解决。因此,请确保管理员应该执行此过程。
要首先实现这一点,您需要转到您的 firebase 项目。转到函数并在仪表板中将光标移动到表格上。您可以在该行的右侧看到三个点。单击它并选择删除功能。
之后打开您的 Dialogflow(如果已经打开,则刷新)。转到 Fulfillment 并部署那里已经存在的代码。将部署默认的实现代码,您可以看到 firebase 项目中的功能已创建。您现在也可以部署自己的代码。
我遇到过同样的问题。我的问题是由多次添加凭据或 ServiceAccounts 引起的(尽管我不知道我还把它包括在哪里)。
以下是 Firebase Admin SDK 配置片段:
var admin = require("firebase-admin");
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://XXXXXXXXXXXX-rtdb.firebaseio.com"
});
在内联编辑器中添加 firebase 配置片段时:我只添加以下内容并且它可以工作。
var admin = require("firebase-admin");
admin.initializeApp({
databaseURL: "https://XXXXXXXXXXXX-rtdb.firebaseio.com"
});