Firebase + Node.js:错误:找不到XMLHttpRequest兼容性库

时间:2016-12-19 01:19:12

标签: javascript node.js firebase

Firebase + Node.js

在iOS上:

  1. 已安装Node.js
  2. npm install firebase --save
  3. node test.js
  4. test.js是一个非常简单的连接Firebase的脚本:

    var firebase = require("firebase/app");
    require("firebase/auth");
    
    var config = {
       ...
    };
    
    var app = firebase.initializeApp(config); // Works fine
    firebase.auth().signInWithEmailAndPassword(…); // Throws error
    

    抛出的错误是

    Error: The XMLHttpRequest compatibility library was not found.
    

    我在俯瞰什么?感谢。

4 个答案:

答案 0 :(得分:12)

使用Angularfire2和Universal Server Side渲染我遇到了同样的问题。我已将xmlhttprequest添加到我的server.js文件中解决了这个问题。

就像这样:

npm install xmlhttprequest --save

并添加如下:

global.XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;

也许对某人有帮助!

答案 1 :(得分:9)

Mmmhhh。有趣。通过将多个“require”行(取自Firebase文档)更改为单个:

var firebase = require("firebase");

它开始工作得很好。

答案 2 :(得分:3)

要使 Firebase 服务器端渲染正常工作,您需要安装:

  • npm i xmlhttprequest ws -s
  • npm i bufferutil utf-8-validate -s

然后在 server.ts 文件(位于根文件夹中)上添加:

(global as any).XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;

详细了解本教程:here

答案 3 :(得分:1)

经过2天的努力,我终于明白了!

您不应将Firebase代码放入构造函数中。将其移动到componentDidMount()方法。并将函数移到构造函数上方。

希望这对某人有帮助。