我已经使用Dialogflow实现内联编辑器进行测试一年多了。但突然之间,自从过去两天以来,我无法部署它,因为它显示错误409
项目中us-central1区域的功能对话流程FirebaseFulfillment。。。已存在
我还使用几个月前部署的旧代码进行了测试。但结果相同。大约两个月前,我也转到了节点10。对于其他代理,它运行正常,但此代理出现问题。
我已经尝试了几个建议,但其中大多数都与这个问题无关。
为什么它突然开始了,我该如何克服这个问题?
我找到的解决方案是删除同一项目的firebase函数,并在Dialogflow中重新部署该项目。首先将代码保存到其他地方。
一个非常重要的点是,你需要成为firebase项目的管理员,或者要求你的管理员遵循以下步骤。编辑可以执行这些步骤,但您的问题不会得到解决。因此,请确保管理员应该执行此过程。
要实现这一点,首先你需要去你的firebase项目。转到"功能",然后在"仪表板"中将光标移动到表格上。你可以看到这排右边有三个点。单击它并选择Delete Function(删除功能(。
之后打开对话框流(如果已经打开,则刷新(。转到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"
});