Я работал над приложением, которое использует Electron с NodeJS и jQuery, Bootstrap и Firebase. Я столкнулся со многими проблемами в разработке.
Первая проблема - это FirebaseUI, который работает в Electron, внедряя его в HTML (CDN Firebase), но не с зависимостями узлов.
Вторая проблема, с которой я столкнулся, это плохая производительность, когда основной процесс получает большой набор данных из Firestore; Я инициализировал firebase в Main process , проанализировал объект для процесса рендеринга и поместил onSnapshotListener в коллекцию, чтобы мои данные были синхронизированы c, что сильно повлияло на мою производительность (загрузка 30 с страницы).
mainWindow = new BrowserWindow({
width: 1200,
height: 1000,
webPreferences: {
webSecurity: true,
nodeIntegration: true,
nativeWindowOpen: true
},
});
let details = {/*init info*/};
firebase.initializeApp(details);
global.firebase = firebase; //to access the firebase instance from the renderer process
mainWindow.loadFile('source/login/login.html'); //load login window
mainWindow.on('closed', function () {
mainWindow = null;
});
Итак, я прибегнул к инициализации моего приложения в каждом процессе рендеринга (что хорошо работает с onSnapshotListener), но я всегда должен был аутентифицировать пользователя, когда пользователь изменяет страницу.
const firebase = require('firebase');
firebase.initializeApp(require('electron').remote.getGlobal('firebaseLoginDetails'));
const db = firebase.firestore();
Есть ли лучший способ решить проблемы с производительностью и аутентификацией?