部署以下hello-world等效代码时,我会在最后显示错误: -
$ ls -lR
.:
total 8
-rw-r--r-- 1 hgarg hgarg 3 Aug 29 14:55 firebase.json
drwxr-xr-x 2 hgarg hgarg 4096 Aug 29 11:56 functions
./functions:
total 4
-rw-r--r-- 1 hgarg hgarg 1678 Aug 29 11:56 index.js
firebase.json看起来像这样: -
{}
和index.json这样: -
'use strict';
const functions = require('firebase-functions');
exports.search = functions.https.onRequest((req, res) => {
if (req.method === 'PUT') {
res.status(403).send('Forbidden!');
}
var category = 'Category';
console.log('Sending category', category);
res.status(200).send(category);
});
但是部署失败: -
$ firebase deploy
Error: Cannot understand what targets to deploy. Check that you specified valid targets if you used the --only or --except flag. Otherwise, check your firebase.json to ensure that your project is initialized for the desired features.
$ firebase deploy --only functions
Error: Cannot understand what targets to deploy. Check that you specified valid targets if you used the --only or --except flag. Otherwise, check your firebase.json to ensure that your project is initialized for the desired features.
最好用默认选项预先填充火箱。我选择我只想使用托管firebase.json应该使用默认托管选项创建。
{
"hosting": {
"public": "public"
}
}
或您尝试再次运行
firebase init
。
面临类似的问题。在firebase.json文件(在托管参数中)中,我们必须给我们要部署的目录名称(在我的情况下,我已经在目录中,我想部署它,因此我放置了"。规格)。它解决了我的错误。
{
"hosting": {
"public": ".",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
}
}
我在运行时面对这个问题:
firebase emulators:exec --only firestore 'npm tst'
问题在于,在firebase.json
上必须具有所需模拟器的属性。因此,就我而言,我在firebase.json
上添加了"firestore": {}
并工作。
我也遇到了这个问题,因为在Firebase Project设置的开头,我仅初始化了托管功能。稍后,当我想用 firebase cli 部署Firestore安全规则时,我的初始化过程尚未完成,以使此命令按预期进行工作。
我无法运行firebase deploy --only firestore:rules
因为我的firebase.json
文件未使用默认文件初始化。
解决此问题的最简单,最足够的方法是再次运行Firebase Init命令,以设置您要使用的所有功能。您可以手动执行此操作,但您可能会错过命令行界面可以以默认设置的确切方式为您设置的详细信息。
解决方案:
再次运行firebase init
命令...并确保初始化您当前正在使用的每个功能。注意如果您已经有了一些启动命令命令要求的Firebase CLI指令,请不要覆盖重要的配置。
firebase读取软件包。我的项目目录中缺少此文件,因为我在执行 init 。
后移动了文件。创建一个干净的目录并执行 firebase Init functions 它创建了所有必需的文件和文件夹以开始。
我认为您在以下内容之一上缺少 -
a)您应该在index.html所在的主项目之外运行firebase init。b)按下 Space ,在运行Firebase INIT后选择托管选项c)请给出包含index.html的文件夹名称。
您的项目将运行。