Firebase-Admin, импортирующий его для реакции приложения, выдает ошибку `` Модуль не найден ''

Я разрабатываю простое приложение React, которое использует администратора firebase.

Я создал приложение для реагирования с помощью создания приложения для реагирования.

Затем я установил firebase-admin с помощью этой команды npm:

npm install firebase-admin --save

В моем index.js я добавил этот импорт:

 import React from 'react';
 import ReactDOM from 'react-dom';
 import App from './App';
 import registerServiceWorker from './registerServiceWorker';

 import * as admin from 'firebase-admin'

 ReactDOM.render(<App />, document.getElementById('root'));
 registerServiceWorker();

Когда я запускаю команду npm start и открываю свою страницу, я получаю эту ошибку:

 Module not found: Can't resolve 'dns' in 'D:\path\to\my\project\node_modules\firebase-admin\node_modules\isemail\lib'

Почему это происходит? Я что-то пропустил?


person Mr.D    schedule 16.06.2017    source источник


Ответы (1)


Пакеты Admin SDK нельзя использовать в клиентских средах. Это включает в себя веб-браузеры. Пакеты Admin SDK можно и нужно использовать только в привилегированных серверных средах, принадлежащих или управляемых разработчиками приложения Firebase. Вам следует использовать веб-SDK Firebase в своем приложении React.

person Hiranya Jayathilaka    schedule 19.06.2017
comment
Боже, я не вижу этой детали в документации. Итак, если бы я создавал какой-то тип интерфейса администратора, который позволял бы администраторам просматривать всех пользователей, например, моего экземпляра firebase, мне нужно было бы просто сделать этого обычного пользователя в моем приложении, чтобы предоставить управление на стороне браузера? Таким образом, у меня будет набор администраторов в моем экземпляре firebase? Admin SDK предназначен в основном для работы только на стороне сервера (например, облачных функций)? Верно? - person AlxVallejo; 03.10.2017
comment
Верный. Вы можете разместить некоторые привилегированные операции на сервере (используя административный SDK) и заставить клиентское приложение связываться с сервером, когда эти операции необходимы. Вы можете использовать admin.auth().verifyIdToken() на сервере для проверки запросов. - person Hiranya Jayathilaka; 03.10.2017