12

部署以下 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.
4

6 回答 6

21

最好使用默认选项预先填充 Firebase。我选择我只想使用托管 firebase.json 应该使用默认托管选项创建。

{
  "hosting": {
    "public": "public"
  }
}

或者你firebase init再次尝试运行。

于 2017-08-29T09:51:51.570 回答
9

面临类似的问题。在 firebase.json 文件中(在主机参数中),我们必须给出我们想要部署的目录的名称(在我的例子中,我已经在我想要部署的目录中,因此我在主机中输入了“.”规格)。它为我解决了错误。

{
  "hosting": {
    "public": ".",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  }
}
于 2017-12-10T11:39:02.560 回答
5

我在运行时遇到了这个问题:

firebase emulators:exec --only firestore 'npm tst'

问题是 onfirebase.json必须具有您想要的模拟器的属性。因此,就我而言,我添加了一个"firestore": {}firebase.json开始工作。

于 2019-12-05T21:03:11.750 回答
1

Firebase 读取 package.json 以读取函数目标的详细信息。我的项目目录中缺少此文件,因为我在执行init后移动了文件。

创建一个干净的目录并在其中执行firebase init 函数创建了所有需要的文件和文件夹以开始使用。

于 2017-08-29T13:51:03.727 回答
1

我认为您缺少以下其中一项-

a) 您应该在 index.html 所在的主项目之外运行 firebase init。b) 在运行 firebase init 后按空格键选择托管选项 c) 请给出其中包含 index.html 的文件夹名称。

您的项目将开始运行。

于 2018-01-07T09:21:03.687 回答
0

我也遇到了这个问题,因为在我的 Firebase 项目设置开始时,我只初始化了托管功能。后来,当我想使用Firebase CLI部署 firestore 安全规则时,我的初始化过程并未完成,该命令无法按预期工作

我无法运行firebase deploy --only firestore:rules ,因为我的firebase.json文件没有使用默认值初始化。

解决此问题的最简单和最充分的方法是再次运行 firebase init 命令以设置您要使用的所有功能。您可以手动执行此操作,但您可能会错过命令行界面可以按照默认方式为您设置的详细信息。

解决方案:

再次运行firebase init命令 ......并确保初始化您当前使用的每个功能。如果您已经有一些重要配置,请注意不要覆盖重要配置,请仔细阅读 init 命令询问的 Firebase CLI 说明。

于 2021-10-08T12:52:43.170 回答