Pau*_*tto 1 variables popup firebase reactjs electron
所以,我有一个ReactApp,它使用firebase登录,登录后就可以使用该应用程序。但是,当尝试登录时,弹出窗口打开,几秒钟后,它关闭,不允许我登录。我认为问题出在电子的某个地方,只是看不到哪里,这是尝试打开弹出窗口时它给我的错误消息:
“ELECTRON_GUEST_WINDOW_MANAGER_WINDOW_METHOD”的处理程序中发生错误:错误 guestId 无效:2
我将在这里留下部分代码,以便您可以看到它是如何编写的。这是电子代码:
const { app, BrowserWindow } = require('electron')
const path = require('path')
const isDev = require('electron-is-dev')
function createWindow () {
const win = new BrowserWindow({
width: 1280,
height: 720,
webPreferences: {
nodeIntegration: true
}
})
win.loadURL(
isDev ? "http://localhost:3000"
:
`file://${path.join(__dirname, "../build/index.html")}`
)
}
app.whenReady().then(createWindow)
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})
Run Code Online (Sandbox Code Playgroud)
这是 firebase 代码:
const firebaseConfig = {
apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
appId: process.env.REACT_APP_FIREBASE_APP_ID,
measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID
}
firebase.initializeApp(firebaseConfig)
const database = firebase.database()
const googleAuthProvider = new firebase.auth.GoogleAuthProvider()
export { firebase, googleAuthProvider, database as default }
Run Code Online (Sandbox Code Playgroud)
这是进行身份验证的 redux 操作:
export const startLogin = () => {
return () => {
return firebase.auth().signInWithPopup(googleAuthProvider)
}
}
Run Code Online (Sandbox Code Playgroud)
您需要在 webPreferences 中添加 nativeWindowOpen。最后那部分应该看起来像
const win = new BrowserWindow({
width: 900,
height: 680,
webPreferences: {
nodeIntegration: true,
nativeWindowOpen: true,
},
});
Run Code Online (Sandbox Code Playgroud)
添加此内容后,您应该会看到弹出窗口。
有关此内容的更多信息,您可以在这里阅读:https ://github.com/electron/electron/issues/22898