Solución:
No sé si esta es la mejor solución, pero es una solución alternativa.
crear un archivo server.js con un servidor expreso simple
“server.js”
var express = require('express');
var http = require('http');
var path = require('path');
var appServer = express();
appServer.use(express.static(path.join(__dirname, '')));
appServer.get('*', (req, res) => {
res.sendFile(__dirname + 'index.html');
});
http.createServer(appServer).listen(3007, function() {
console.log('Express server listening on port');
});
En su main.js (electron-main-js-file)
En la parte superior de main.js, inicie el servidor de nodo
require('./server');
y cambie “win.loadURL”
win.loadURL('http://localhost:3007');
He bifurcado su proyecto e implementado, el error de firebase desapareció pero jQuery no está definido, creo que puede solucionarlo.
https://github.com/diegoddox/sad-electron-firebase-error
Por ahora, puede suprimir este error eliminando la línea authDomain de su config. authDomain es necesario para las operaciones Auth signInWithPopup / signInWithRedirect, pero todo lo demás debería funcionar.
Se está trabajando en una versión de la biblioteca que arroja ese error solo cuando realmente intenta hacer un signInWithPopup / Redirect.
Puede usar GitHub, Twitter, Facebook, Google Provider de firebase auth con electron usando el flujo de inicio de sesión manual y firebase auth signInWithCredential
método.
https://firebase.google.com/docs/auth/web/github-auth#handle_the_sign-in_flow_manually
Creé una biblioteca útil para estos casos.
https://github.com/mironal/electron-oauth-helper#firebase-auth-integration
// Github manually flow example.
const { OAuth2Provider } = require("electron-oauth-helper")
const config = { /* oauth config. please see example/main/config.example.js. */}
const provider = new OAuth2Provider(config)
provider.perform()
.then(resp => {
const query = querystring.parse(resp)
const credential = firebase.auth.GithubAuthProvider.credential(query.access_token)
firebase.auth().signInWithCredential(credential)
.then(user => {
console.log(user)
})
.catch(error => console.error(error))
})
.catch(error => console.error(error))