1

当我使用节点运行以下代码时,它能够连接到外部服务器。但是当我在 firebase 上部署这段代码时,它失败了。

const Web3      = require('web3');
var web3        = new Web3(new Web3.providers.HttpProvider("http://<my-server-ip>:8545"));
const functions = require('firebase-functions');
const express   = require('express');

if(web3.isConnected()) {
    console.log("Success")

} else {

   console.log("Failure")

}
const app       = express();
exports.app = functions.https.onRequest(app);

我验证了以下事项来解决此问题:

  • rpc 服务器可从任何地方全局访问
  • package.json 中写的 web3 版本是"web3": "^0.18.4"
4

1 回答 1

0

如果有更多来自 Firebase 的日志,将它们附加到原始问题也会很有帮助。出于这个答案的目的,我假设它只是打印Failure到控制台。

要进行故障排除,请执行以下操作:

  • 检查你的以太坊节点的日志,<my-server-ip>看看那里是否有一些额外的错误,或者是否有来自 Firebase IP 的连接尝试。

  • 如果您在以太坊节点日志中没有看到任何连接尝试,那么即使您提到它是可访问的,我还是建议您仔细检查其防火墙/网络设置以确保它允许来自 Firebase 的连接。

于 2018-02-07T23:48:07.123 回答