小编Eva*_*van的帖子

Firebase'发生网络错误(例如超时,中断连接或无法访问的主机).

我正在尝试为我的数据库客户端编写一些测试,这需要我首先在Firebase中进行身份验证.

我正在使用Jest作为我的测试运行员.

我的测试看起来像:

it ('should sign in ', async (done) => {
  try {
    await auth.signInWithEmailAndPassword('testabc@test.com', 'testuser');
  } catch (e) {
    console.log(e);
  }
  done();
});
Run Code Online (Sandbox Code Playgroud)

我的firebase应用已初始化,我已验证API密钥是否正确.

一些有趣的笔记是即使我得到:

'A network error (such as timeout, interrupted connection or unreachable host) has occurred.' 
Run Code Online (Sandbox Code Playgroud)

在firebase控制台上,我看到我的测试用户已登录.镜像:Firebase在运行jest测试时在signInAnonymously()上抛出"auth/network-request-failed"

它似乎不是一个身份验证问题(错误的密码/错误的电子邮件),因为我尝试以不存在的用户身份登录时遇到相同的错误.

通过浏览器启动我的应用程序并在输入字段中输入凭据登录即可正常工作.

有任何想法吗?

javascript firebase jestjs firebase-authentication

6
推荐指数
1
解决办法
1946
查看次数

使用 Bluebird 承诺 chrome API

我正在尝试使用 Bluebird.js 来保证 chrome.storage.sync.get 。我看到 bluebird http://bluebirdjs.com/docs/working-with-callbacks.html站点上的所有示例都使用Promise.promisify(require(someAPI)). 我尝试做 const storageGet = Promise.promisify(chrome.storage.sync.get);(如果这会影响任何事情,我没有要求),然后调用

async function() {
  return await storageGet('config', function (result) {
    // do stuff
  })
};
Run Code Online (Sandbox Code Playgroud)

控制台错误是

Unhandled rejection Error: Invocation of form get(string, function, function) 
doesn't match definition get(optional string or array or object keys, function 
callback)
Run Code Online (Sandbox Code Playgroud)

我的理解(对 Promises 和 bluebird 的理解很少)是 storageGet 传递了错误的参数?但是 chrome.storage.sync.get 需要传递一个字符串和一个回调函数,所以我不是特别确定出了什么问题。此外,我可能完全不知道如何承诺 chrome 存储。

我知道http://bluebirdjs.com/docs/api/promise.promisifyall.html#option-promisifier有一个关于 chrome promisifying 的例子,但老实说,我对 promise 不太熟悉,无法理解发生了什么那个例子。

是否有某种方式我应该承诺 chrome 存储而不是我这样做的方式?

javascript google-chrome async-await bluebird

5
推荐指数
1
解决办法
778
查看次数

结合使用Chrome存储API和create-react-app构建

我正在创建一个Chrome扩展程序,并使用create-react-app引导了该项目。

一般问题:

我想chrome.storage在我的应用程序中访问API

具体问题:

我希望能够在我的react应用程序中使用chrome.storage API来存储一些设置,因此我在src目录中创建了一个脚本,该脚本尝试调用chrome.storage.sync.set()而我得到了 'chrome' is not defined no-undef。我认为这是因为我需要在清单中包含进行此调用的脚本。问题是我无法src在清单中包含该脚本,因为在create-react-app构建我的项目之后,该脚本src会缩小,文件结构也会全部更改。

另一个问题是create-react-app强制执行了我仅从中导入src但我需要从中导入数据的问题public,因此我不能仅通过从中导入函数来进行chrome API调用public。我知道create-react-app上有弹出功能,但我想维护create-react-app给我的构建功能。

如何在从src目录访问chrome.storage API的同时维护create-react-app的构建功能?

javascript google-chrome-extension create-react-app

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