我正在尝试根据此处提供的文档使用 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,几乎如此处所述。
问题是我无法在没有返回错误的情况下在文件中包含声明。使用自定义声明导入用户是否可行,如果不可行,正确的程序是什么?
我的问题有点乏味,需要社区帮助我解决。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仍在系统中,但我似乎无法卸载它。
因此,我们将不胜感激。
谢谢
对于 Firebase 身份验证,当您要登录/注册应用程序时,您需要将该应用程序的主机在 Firebase 控制台中注册为白名单域,才能继续操作。
有没有办法通过 firebase cli 或某种管理 sdk 来做到这一点?
我正在尝试部署一个通过 kubernetes (GKE) 使用 firebase 身份验证的应用程序。这意味着对于测试来说,每个新部署的入口都会生成一个新的外部 IP,需要手动将其添加到白名单中才能继续进行测试。部署很容易实现自动化,但我找不到自动将 IP 添加/删除到白名单的方法,或者为白名单 IP 提供通配符,或者删除白名单。
在那里:
firebase firebase-tools firebase-authentication firebase-cli
我有两个 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 应用程序时。我该如何解决?
我有一个基于节点的 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
但看起来它不会被合并。
这应该是一个普遍的问题。
I\xc2\xb4m 尝试将我的代码部署到两个不同的 Firebase 项目,一个用于开发,一个用于生产。
\n\n该my-app-dev项目已包含并正在运行,因此我添加了my-app(用于生产)firebase use --add并选择了my-app.
这就是我的 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}\nRun Code Online (Sandbox Code Playgroud)\n\nfirebase.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-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
我正在尝试使用模拟器使用从函数发送到网页的 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 …
我正在使用Ubuntu。
\n我最近使用npm安装了firebase-tools,命令如下:
npm install -g firebase-tools\nRun Code Online (Sandbox Code Playgroud)\n后来也不知道,在我的项目中本地安装了另一个名为firebase的包。使用命令:
\nnpm install firebase\nRun 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)