标签: firebase-tools

Firebase错误:firebase-tools需要进行身份验证

我刚刚安装了firebase-tools和通常的npm软件包安装过程:

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

我已经创建了一个与Google帐户连接的Firebase帐户,但问题是我可以使用命令行工具进行的唯一程序是:

firebase login          // with success 
firebase prefs:token    // return me the auth token 
Run Code Online (Sandbox Code Playgroud)

但每次我尝试其他命令我都会收到错误:

Error: Authentication required. 
Run Code Online (Sandbox Code Playgroud)

例如,对于命令init,list等:

firebase init         // error 
firebase list         // error 
Run Code Online (Sandbox Code Playgroud)

等等...为什么?

npm,node和firebase-tools的版本:

node : v4.2.2
npm : 3.3.12
firebase : 2.2.0
Run Code Online (Sandbox Code Playgroud)

firebase firebase-tools

11
推荐指数
1
解决办法
5836
查看次数

firebase本地服务器>如何在文件更改时刷新浏览器

我正在本地firebase服务器上运行一个webapp (以"firebase serve"开头).

我想要的是找到一种方法告诉我的客户端(浏览器脚本)我的项目文件已经改变,以启动浏览器刷新.

以前的项目(运行nodejs服务器)中,我的解决方案是在后端和前端之间建立websocket连接.所以每次服务器重新启动时(...由于文件更改,我正在观察使用像nodemon这样的观察者...),我的服务器端代码建立了一个新的连接到客户端,该客户端听取了该事件并刷新了浏览器就可以了.

我的firebase服务器问题是,我没有运行自己的后端代码,而且我没有找到有关如何告诉我的客户端的任何信息,我的项目文件已经更改.事实上,我的firebase服务器根本没有重启,因为在这个没有后端的环境中还没有必要.但我想至少可以通过nodemon或其他东西运行我的firebase服务器来完成.

附加信息:我试图找到一种方法,使用webpack-dev-server,它集成了自动刷新功能,但无法在两台服务器之间找到链接,也无法在不同端口上集成它们并解决不同的任务.

我的问题可能是:firebase服务器中是否有任何解决方案?有没有办法在文件发生变化时触发客户端事件?或者最终运行我自己的firebase后端中间件来创建与客户端的websocket连接?

欢迎任何建议.


编辑:

我找到了一种使用browsersync的方法.由于browsersync可以充当其他服务器的代理(在我的例子中:firebase服务器),因此设置非常简单.

安装完成后,只需转到项目目录并输入例如:

browser-sync start --proxy"localhost:5000"--files"dist/*"

其中"localhost:5000"是当前服务器所处理的主机和端口,"dist"是应该监视更改的目录.

默认情况下,browsersync将在"localhost:3000"为您的应用提供服务.

有关browsersync主页的更多信息

browser refresh watch firebase firebase-tools

11
推荐指数
1
解决办法
2825
查看次数

Firestore Cloud功能无法在本地运行

我已经创建了一个测试项目,并根据文档进行了所有配置,但是当我运行该项目时,它没有按预期运行,在编写此问题之前,我用过google并发现了一些重复的问题,但是每种情况的情况都不同因此,我假设这不是一个重复的问题

这是我的终端命令和输出:

functions ? npm run serve                                                                                         

> functions@ serve /Users/codecrash/Developments/crm-firestore/functions
> firebase serve --only functions

?  functions: Using node@8 from host.
?  functions: Emulator started at http://localhost:5000
i  functions: Watching "/Users/codecrash/Developments/crm-firestore/functions" for Cloud Functions...
i  Your code has been provided a "firebase-admin" instance.
i  functions: HTTP trigger initialized at http://localhost:5000/demo-crm/us-central1/helloWorld
Ignoring trigger "onWrite" because the Cloud Firestore emulator is not running.
Ignoring trigger "onUpdate" because the Cloud Firestore emulator is not running.
i  functions: Beginning execution of …
Run Code Online (Sandbox Code Playgroud)

javascript firebase firebase-tools google-cloud-functions google-cloud-firestore

11
推荐指数
1
解决办法
879
查看次数

我可以干净地删除firebase CLI项目吗?

我在错误的目录中运行firebase init,它连接到我的项目.要撤消该操作,我可以从终端删除./firebase.json和my_newly_created_folder_name /吗?谢谢

firebase firebase-tools

10
推荐指数
1
解决办法
8206
查看次数

无法从firebase集合中删除文件

我遵循此处列出的示例,除非由于新API的修改firebase-tools.

exports.clearMessages = functions.runWith({ timeoutSeconds: 540, memory: '2GB' }).https.onCall(messagesController.clearMessages)

export const clearMessages = async (data, context) => {
    const uid = context.auth.uid
    const path = `users/${uid}/messages`
    return firebase_tools.firestore.delete('flightApp3', path, {
        recursive: true,
        shallow: true,
        allCollections: true
    }).then(result => {
        console.log('delete result', result)
        return result
    })
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我看到云功能日志中显示以下内容:

Unhandled error { Error
    at Error.FirebaseError (/user_code/node_modules/firebase-tools/lib/error.js:9:18)
    at module.exports (/user_code/node_modules/firebase-tools/lib/getProjectId.js:10:19)
    at Command.module.exports (/user_code/node_modules/firebase-tools/lib/requirePermissions.js:11:21)
    at /user_code/node_modules/firebase-tools/lib/command.js:154:38
    at process._tickDomainCallback (internal/process/next_tick.js:135:7)
  name: 'FirebaseError',
  message: 'No project active. Run with \u001b[1m--project …
Run Code Online (Sandbox Code Playgroud)

node.js firebase firebase-tools google-cloud-firestore

10
推荐指数
1
解决办法
726
查看次数

我该如何解决:错误:无法列出Firebase项目。有关更多信息,请参见firebase-debug.log。

因此,当我突然遇到以下错误时,我正在考虑自己的公司尝试在Angular应用中初始化Firebase项目:

Error: Failed to list Firebase projects. See firebase-debug.log for more info.

为了达到这一点,我按照此处的文档中的说明执行了这些说明:

$ npm install -g firebase-tools

$ firebase login //原来我已经登录。

$ firebase list //确保您可以访问您的帐户。

无论如何,回到错误。“好吧,”我想。“我只会查看指向我的日志。” 我打开日志,然后看到:

HTTP Error: 401, Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project. FirebaseError: HTTP Error: 401, Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.

关于“无效的身份验证凭据”的部分使我认为这与我未登录Firebase有关,但firebase login显示我已登录。

日志中的URL仅将我带到使用我的应用程序中使用firebase …

firebase firebase-tools

10
推荐指数
4
解决办法
1436
查看次数

无法使用 cypress 使用 firestore 本地模拟器测试应用程序

我有一个用 vue 和 firebase/firestore 构建的应用程序。我使用 firebase 模拟器进行本地开发,并尝试将我的开发工作流程与 cypress 集成。但是,如果我从浏览器访问该应用程序,我会在 cypress 中收到错误消息。

Firebase CLI 版本为 7.9.0,Cypress 版本为“^3.8.0”

我用于加载所有内容的 npm 脚本如下:

"start": "firebase emulators:exec --only firestore \"npm run dev:appandtest\"",
"dev:appandtest": "concurrently -n \"app,test\" -c \"bgYellow.black,bgWhite.black\" \"npm:dev:app\" \"npm:dev:test\"",
"dev:app": "webpack-dev-server --config build/webpack.dev.js",
"dev:test": "npx cypress open", 
Run Code Online (Sandbox Code Playgroud)

本地服务器在端口 9000 上运行,而 firebase 模拟器在端口 8080 上运行。

事情运行后,如果我从普通浏览器访问应用程序,一切都很好,如此屏幕所示。

普通的

在此处输入图片说明

然后我尝试使用此代码运行基本的柏树测试

    describe('The Home Page', function () {
      it('successfully loads', function () {
        cy.visit('/');
      });
    });

Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

    [2019-12-14T15:29:24.725Z]  @firebase/firestore: Firestore (6.6.2): Could not reach Cloud Firestore backend. Backend didn't …
Run Code Online (Sandbox Code Playgroud)

webapp2 firebase firebase-tools cypress google-cloud-firestore

10
推荐指数
1
解决办法
1457
查看次数

在 github 操作上运行 firebase 模拟器

我正在尝试在 Github Actinos 上运行测试,但经过多次尝试后我无法做到这一点。

\n\n

接收

\n\n
\n

错误:firestore:Firestore 模拟器已退出,因为未安装 java,您可以从https://openjdk.java.net/install/安装它

\n
\n\n
\n\n
  - name: Test\n    uses: w9jds/firebase-action@v1.3.1\n    env:\n      JAVA_HOME: ${{ env.JAVA_HOME }}\n      FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}\n      GCLOUD_PROJECT: ${{ secrets.nextGCLOUD_PROJECT }}\n      PROJECT_ID: ${{ secrets.nextFIREBASE_PROJECTID }}\n    with:\n      args: |\n        setup:emulators:firestore --debug\n        firebase emulators:exec --debug --only functions,firestore \\"npm run test --exit -- --forceExit --detectOpenHandles\\"\n\n  - name: Print debug logs\n    if: failure()\n    run: |\n      java --version\n      ls -la\n      find . -type f -name "fire*-debug.log" | xargs cat\n
Run Code Online (Sandbox Code Playgroud)\n\n

这就是操作的输出name: Test …

continuous-integration unit-testing firebase firebase-tools github-actions

10
推荐指数
2
解决办法
5499
查看次数

为什么我在 Firebase Cloud Firestore 模拟器 UI 中看不到数据?

我对安全规则进行了一些测试,并将数据集启动到本地 Firestore 模拟器(使用该@firebase/testing,几乎如此处所述)。测试大部分都有效,所以我认为数据确实到达了 Firestore。

\n

但我在模拟器 UI 中看不到它。

\n

http://localhost:4000/ > Firestore 模拟器 > 转到模拟器显示空数据

\n

相关,我想知道\xe2\x80\x9dproject ID\xe2\x80\x9d参数在仿真中的作用是什么?设置 Firebase 应用对象时需要它,但它在哪里使用呢?模拟器没有提供可供选择的模拟项目列表。

\n

使困惑。

\n
\n

复制方法(根据要求):

\n
$ git clone git@github.com:akauppi/GroundLevel-es6-firebase-web.git\n$ cd GroundLevel-es6-firebase-web/rules-test\n\n# You only need to work in the rules-test subproject\n\n$ npm install\n...\n
Run Code Online (Sandbox Code Playgroud)\n

在另一个终端(同一文件夹)中:

\n
$ npm run start    # leave running...\n
Run Code Online (Sandbox Code Playgroud)\n
$ npm run test:symbols\n
Run Code Online (Sandbox Code Playgroud)\n

测试应该通过(跳过其中一项)。

\n

测试的运行已将数据准备到模拟器中,并且它应该仍然存在。项目 ID abc(请参阅输出中的“使用会话:abc”)。

\n

http://localhost:4000/> 进入模拟器

\n

预期的:

\n
    \n
  • 能够选择项目abc
  • \n
  • 能够看到已准备好的数据(顺便说一句。它位于data.js …

firebase firebase-tools google-cloud-firestore

10
推荐指数
1
解决办法
3445
查看次数

更新到@firebase/rules-unit-testing 2.0后,initializeAdminApp和clearFirestoreData方法不再可用

我只是将我的依赖更新为"@firebase/rules-unit-testing": "^2.0.0"

它破坏了我的代码。我的代码是

import * as firebase from "@firebase/rules-unit-testing";

function getAdminFirestore() {
    return firebase.initializeAdminApp({ projectId: projectID }).firestore();
}

function getFirestore(auth?: TokenOptions) {
    return firebase.initializeTestApp({ projectId: projectID, auth: auth }).firestore();
}

beforeEach(async () => {
    await firebase.clearFirestoreData({ projectId: projectID });
});

after(async () => {
    await firebase.clearFirestoreData({ projectId: projectID });
});
Run Code Online (Sandbox Code Playgroud)

但我有很多错误,因为有些方法不再像这样可用

在此输入图像描述

那么 firebase/rules-unit-testing 2.0.0 中的等效方法是什么?

node.js firebase firebase-security firebase-tools

10
推荐指数
1
解决办法
748
查看次数