Подтвердить что ты не робот

Firebase + Node.js: Ошибка: библиотека совместимости XMLHttpRequest не найдена

Firebase + Node.js

В iOS:

  • Установлен Node.js
  • npm установить firebase --save
  • node test.js

Если test.js очень просто script для подключения к 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.

Что я пропускаю? Спасибо.

4b9b3361

Ответ 1

У меня была та же проблема с использованием Angularfire2 с рендерингом Universal Server Side. Я решил это, добавив xmlhttprequest в мой файл server.js.

Именно так:

npm install xmlhttprequest --save

и добавив его как:

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

или же

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

Может быть, это кому-то поможет!

Ответ 2

Mmmhhh. Интересно. Изменяя несколько строк "require" (взятых из документов Firebase) в один:

var firebase = require("firebase");

Он начал работать нормально.

Ответ 3

Для правильной работы рендеринга на стороне сервера Firebase необходимо установить:

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

Затем в файле server.ts (находится в корневой папке) добавьте:

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

Читайте больше на этом уроке: здесь

Ответ 4

Я наконец получил это после 2 дней изо всех сил!

Вы не должны помещать код firebase в конструктор. Переместите его метод componentDidMount(). И переместите функции над конструктором.

Надеюсь, это кому-нибудь поможет.