标签: firebase-cli

使用自定义声明导入 Firebase 用户

我正在尝试根据此处提供的文档使用 firebase CLI 导出和导入用户。我的问题是我还想导出用户声明,或者至少能够在导入用户时包含自定义声明。

基本上要导出我在 CLI 上运行:

firebase auth:export test.json --format=json
Run Code Online (Sandbox Code Playgroud)

为了导入,我在 CLI 上运行:

firebase auth:import test.json \ --hash-algo:scrypt
Run Code Online (Sandbox Code Playgroud)

导出的用户不持有自定义声明信息。

目前,我正在处理 2 个自定义声明,admin 和 access,几乎如此处所述

问题是我无法在没有返回错误的情况下在文件中包含声明。使用自定义声明导入用户是否可行,如果不可行,正确的程序是什么?

firebase firebase-authentication firebase-cli

7
推荐指数
1
解决办法
362
查看次数

Firebase shell 仍然读取我的 Node 版本 12 而不是 Nvm 版本

我的问题有点乏味,需要社区帮助我解决。Nodejs.org我从使用它的文件的官方网站安装了节点 12 .pkg。我使用 firebase 函数 shell 在本地测试我们的工作,但由于版本冲突,我需要降级到 10。这就是问题开始的地方,我安装了NVM降级版本,并且成功了,所以当我node -v这样做时,我看到v10但当我跑步时

firebase functions:shell

我仍然收到警告

Your requested "node" version "10" doesn't match your global version "12"

现在我需要对此进行排序,因为我的本地云功能仍然无法工作,并且我认为它仍在读取节点的第 12 版本。我遵循了从系统中手动删除节点的不同教程,并且我再次能够通过验证来删除节点

node -v它给了我一个错误,node command not found这意味着 Node 被删除了,但即使 Node 被卸载,我仍然能够运行

firebase functions:shell并在本地运行云功能,因此这意味着节点12仍在系统中,但我似乎无法卸载它。

因此,我们将不胜感激。

谢谢

node.js firebase nvm firebase-cli

7
推荐指数
1
解决办法
1441
查看次数

有没有办法通过 CLI 将域添加到 firebase 身份验证的白名单中?

对于 Firebase 身份验证,当您要登录/注册应用程序时,您需要将该应用程序的主机在 Firebase 控制台中注册为白名单域,才能继续操作。

有没有办法通过 firebase cli 或某种管理 sdk 来做到这一点?

我正在尝试部署一个通过 kubernetes (GKE) 使用 firebase 身份验证的应用程序。这意味着对于测试来说,每个新部署的入口都会生成一个新的外部 IP,需要手动将其添加到白名单中才能继续进行测试。部署很容易实现自动化,但我找不到自动将 IP 添加/删除到白名单的方法,或者为白名单 IP 提供通配符,或者删除白名单。

我正在讨论的域/白名单在控制台中如下所示: 身份验证设置处的控制台

在那里:

控制台中的白名单部分

firebase firebase-tools firebase-authentication firebase-cli

7
推荐指数
0
解决办法
1841
查看次数

使用多个项目时,Firebase 部署到错误的托管

我有两个 firebase 项目:myapp用于生产环境和myapp-dev用于开发环境。
我首先使用 firebase cli 使用“myapp”初始化我的项目,因此所有文件都是由此生成的,包括托管资源myapp(这样我就可以将我的应用程序部署到myapp.web.app)。

然后我添加了第二个 firebase 项目(“myapp-dev”)。我运行那些

firebase use --add myapp-dev  # I have selected the right myapp-dev firebase project and set `dev` as short name
firebase target:apply hosting myapp-dev myapp  # note here that I also use name "myapp" as resource
Run Code Online (Sandbox Code Playgroud)

我已经手动更改了我的,.firebasesrc因为我希望开发项目成为默认...

所以我的.firebasesrc样子是这样的

{
  "projects": {
    "default": "myapp-dev",
    "prod": "myapp"
  },
  "targets": {
    "myapp": {
      "hosting": {
        "myapp": [
          "myapp"
        ]
      }
    },
    "myapp-dev": …
Run Code Online (Sandbox Code Playgroud)

firebase firebase-hosting firebase-cli

7
推荐指数
1
解决办法
1907
查看次数

“firebase deploy”错误 - 必须在每个“托管”配置中使用“public”提供一个公共目录

我收到错误“必须在每个“托管”配置中使用“公共”提供公共目录。部署我的 firebase 应用程序时。我该如何解决?

firebase firebase-hosting firebase-cli

7
推荐指数
2
解决办法
3093
查看次数

Firebase 不部署新功能,因为它无法删除旧功能?我不能以某种方式忽略缺失的功能吗?

我有一个基于节点的 Rest api 应用程序,运行单个 firebase 函数,并且我正在尝试设置 CD 管道来部署暂存函数和另一个生产函数。

我发现实现此功能的唯一方法是拥有“生产.ts”和“staging.ts”,并在每个管道中将相关管道重命名为index.ts。

这有效并且成功,但因为它在那里找不到其他函数,所以它不会发布新函数,而是会恢复所有内容?

这是我上次运行的控制台输出:

  functions: creating Node.js 10 function StagingAPI (europe-west2)...

Error: The following functions are found in your project but do not exist in your local source code:

    ProductionAPI (europe-west2)

Aborting because deletion cannot proceed in non-interactive mode. To fix, manually delete the functions by running:

    firebase functions:delete ProductionAPI --region europe-west2
Run Code Online (Sandbox Code Playgroud)

如果没有另一个完全独立的 firebase 项目,我如何才能以不同的方式实现这一目标?

我可以看到github上有一些关于它的讨论,甚至有一个拉取请求试图通过提供一个标志来解决这个问题:--ignore-existing-functions

但看起来它不会被合并。

这应该是一个普遍的问题。

firebase google-cloud-functions firebase-cli

7
推荐指数
1
解决办法
1248
查看次数

Firebase:将同一应用程序部署到多个 Firebase 项目

I\xc2\xb4m 尝试将我的代码部署到两个不同的 Firebase 项目,一个用于开发,一个用于生产。

\n\n

my-app-dev项目已包含并正在运行,因此我添加了my-app(用于生产)firebase use --add并选择了my-app.

\n\n

这就是我的 Firebase 配置现在的样子:

\n\n

.firebaserc

\n\n
{\n  "targets": {\n    "my-app-dev": {\n      "hosting": {\n        "app": [\n          "my-app-dev"\n        ]\n      }\n    }\n  },\n  "projects": {\n    "default": "my-app-dev",\n    "prod": "my-app"\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

firebase.json

\n\n
{\n  "hosting": [\n    {\n      "target": "app",\n      "public": "dist/app",\n      "ignore": [\n        "firebase.json",\n        "**/.*",\n        "**/node_modules/**"\n      ],\n      "rewrites": [\n        {\n          "source": "**",\n          "destination": "/index.html"\n        }\n      ]\n    }\n  ],\n  "functions": {\n    "predeploy": [\n      "npm --prefix \\"$RESOURCE_DIR\\" run …
Run Code Online (Sandbox Code Playgroud)

firebase firebase-hosting firebase-cli

7
推荐指数
2
解决办法
3998
查看次数

实时数据库模拟器忽略database.rules.json

我有一个使用实时数据库的 Firebase 项目,我正在尝试设置本地模拟器进行测试。不幸的是,Firebase-cli 似乎正在占用我的database.rules.json文件。即使在创建测试项目来解决这个特定问题之后也会发生这种情况。

让我给你一些有关我的设置的信息。

我创建了一个没有启用任何内容的 Firebase 项目。我在本地计算机上创建了一个空目录并运行firebase init database. 这样做创建了一些文件:

.firebaserc

{
  "projects": {
    "default": "emulators-test-244be"
  }
}
Run Code Online (Sandbox Code Playgroud)

firebase.json

{
  "database": {
    "rules": "database.rules.json"
  }
}
Run Code Online (Sandbox Code Playgroud)

database.rules.json(我这里修改了规则来锁定数据库)

{
  "rules": {
    ".read": false,
    ".write": false
  }
}
Run Code Online (Sandbox Code Playgroud)

当我使用运行模拟器时firebase emulators:start --only database,控制台告诉我数据库已成功初始化。但是,当我访问http://localhost:9000/.inspect/coverage?ns=emulators-test-244be查看当前加载的安全规则时,它给出以下输出:

{
    "rules": {
        ".read": true,
        ".write": true
    }
}
Run Code Online (Sandbox Code Playgroud)

显然,这直接违背了我在文件中设定的规则database.rules.json

我注意到的一件事是,如果我database.rules.json在模拟器运行时修改文件,我会从控制台得到以下输出:

i database: Change detected, updating rules for undefined...

显然,这样做会导致模拟器创建一个名为 的新数据库undefined。当我转到 时http://localhost:9000/.inspect/coverage?ns=undefined,输出正确反映了我在 …

firebase firebase-security firebase-realtime-database firebase-cli

7
推荐指数
1
解决办法
1422
查看次数

使用 auth 模拟器的 SignInWithCustomToken 返回 auth/invalid-custom-token

我正在尝试使用模拟器使用从函数发送到网页的 firebase 自定义令牌进行身份验证。

但当我将与.www.googleapis.comsignInWithCustomToken();

/** BACKEND SIDE **/
  const token = await createFirebaseToken(userid);
  res.status(200).send(token);

/** FRONTEND SIDE **/
  const res = await axios.post(endpoints.signin,{/* oauth data*/});
  await document.fApp.auth().signInWithCustomToken(res.data); /* HTTP400 here */
Run Code Online (Sandbox Code Playgroud)

自定义令牌解码如下:

{
  "https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit",
  "iat": 1605605206,
  "exp": 1605608806,
  "iss": "firebase-auth-emulator@example.com",
  "sub": "firebase-auth-emulator@example.com",
  "uid": *userid*
}
Run Code Online (Sandbox Code Playgroud)

它是否应该发送到 googleapis.com 而不是本地模拟器?

我确实使用 设置了 firebase web 配置authDomain:"localhost:9099",并使用 powershell env 指向GOOGLE_APPLICATION_CREDENTIALSservice-account.json,但在启动时向我发出警告:

您的 GOOGLE_APPLICATION_CREDENTIALS 环境变量指向 ***。非模拟服务将使用这些凭据访问生产环境。当心!

当我打电话时,也收到此警告 3 次admin.auth().createUser(),不知道是否相关:

收到服务帐户令牌奇怪的令牌不是来自 service-account.json假设它拥有项目 *** 我的项目 ID …

firebase firebase-authentication firebase-cli

7
推荐指数
1
解决办法
3718
查看次数

Firebase CLI 命令在 Linux 上打印意外的恶意响应,文本包含无限多个单词:“testing”

我正在使用Ubuntu。
\n我最近使用npm安装了firebase-tools,命令如下:

\n
npm install -g firebase-tools\n
Run Code Online (Sandbox Code Playgroud)\n

后来也不知道,在我的项目中本地安装了另一个名为firebase的包。使用命令:

\n
npm install firebase\n
Run Code Online (Sandbox Code Playgroud)\n

此后我遇到了巨大的问题,不知道发生了什么。\n每当我运行任何 firebase 命令(例如:firebase --help、firebase login 等)时,它都会给我类似的输出,如下所示:

\n
    undefined\n    undefined\n    undefined\n                                       !             H|H|H|H|H  \n         H__________________________________             H|\xc2\xa7|\xc2\xa7|\xc2\xa7|H           H|* * * * * *|---------------------|             H|\xc2\xa7|\xe2\x88\x9e|\xc2\xa7|H  \n         H| * * * * * |---------------------|             H|\xc2\xa7|\xc2\xa7|\xc2\xa7|H           H|* * * * * *|---------------------|             H|H|H|H|H           H| * * * * * |---------------------|             H|H|H|H|H           \nH|---------------------------------|          ===============        H|---------------------------------|            /| _   _ | \n         H|---------------------------------|            (| O   O |)          H|---------------------------------|            /| …
Run Code Online (Sandbox Code Playgroud)

npm firebase firebase-tools firebase-cli

7
推荐指数
1
解决办法
1387
查看次数